前言
在 googletest的源码中,看到gtest-matchers.h 中实现的MatcherBase 类自定义了一个 VTable,这种设计实现了一种类似于C++虚函数的机制。C++中的虚函数机制实质上就是通过这种方式实现的,本文用c语言自定义虚函数表VTable实现了一下virtual的功能,来深刻理解其机制。我们通过创建存储函数指针的结构体来模拟这种行为。
2024年11月23日
在 googletest的源码中,看到gtest-matchers.h 中实现的MatcherBase 类自定义了一个 VTable,这种设计实现了一种类似于C++虚函数的机制。C++中的虚函数机制实质上就是通过这种方式实现的,本文用c语言自定义虚函数表VTable实现了一下virtual的功能,来深刻理解其机制。我们通过创建存储函数指针的结构体来模拟这种行为。
2024年11月23日
记录到了循环结构后,总算能自己手搓一个简单的小游戏了(虽然没有图形化界面)。这下可以在感受到代码乐趣的同时还能巩固一下自己对代码的记忆。
在短视频中,看见过有一个这样的小游戏,数字炸弹,随机记录一个整数,然后让参与者猜数字,如果避开了那个数字则会到另一个参与者继续猜,直到这个数字被猜出来。那么有了这个例子我们就用c语言仿一个这个游戏吧!
打开ide后那肯定是先写我们的框架了
2024年11月23日
第3章 基本语法
在这一章中,我们将详细介绍C语言的基本语法,包括注释、变量与数据类型、常量、运算符和输入输出。这些基础知识是编写C程序的基石,掌握它们将为你后续的学习打下坚实的基础。
2024年11月23日
在C++中,const常量的内存分配取决于它的使用方式。如果它只是用于替换一个常量值,那么编译器可能不会为它分配独立的内存空间,而是直接将常量值"折叠"进代码中,类似于#define的效果。但如果你对它做一些特殊操作,比如取地址或者定义为extern,那么编译器会为它分配内存空间。
2024年11月23日
C语言以其高性能和灵活性而闻名于世,而宏(Macro)是C语言中一个极具特色的特性。宏定义允许我们在编译之前对代码进行文本替换,从而实现代码的抽象和复用。然而,宏的使用并非总是直观的,它隐藏了许多鲜为人知的技巧和陷阱。在本文中,我们将探索五个不为人知的C语言宏小知识,这些知识将帮助你更好地理解和使用宏,提升你的C语言编程技能。
2024年11月23日
位操作是一种在计算机中对二进制数进行操作的方法。位操作通常包括与(&)、或(|)、异或(^)、取反(~)等操作。
常见的位操作包括:
2024年11月23日
popen 函数用于创建一个管道来与一个进程通信。这个函数允许你在 C 程序中执行一个 shell 命令,并根据指定的模式读取命令的输出或向命令发送输入。
语法