1
4
这是为了防范 multiple definitions . |
2
2
有时,人们在其他.c文件(甚至.h文件)中包含一个完整的.c文件,因此它具有完全相同的目的,可以防止包含文件多次被包含,并且编译器会吐出多个定义错误。 不过,奇怪的是,将它放在除.h文件之外的任何文件中都是编辑器的默认行为。这将是一个很少需要的特性。 |
3
1
更现代的版本是使用:
在.c文件中看到这一点是很不寻常的,通常它只在头文件中。 |
4
0
我认为这是C include问题的复古,其中包含了源文件的多个副本-除非您对include链(一个文件包含n个其他文件)非常细致。 检查是否定义了符号,并且仅在定义了符号的情况下才包括符号,这是一种解决方法。 |
Timo · 如果宏变量后跟构成有效标识符的字符,则不会展开宏变量 6 年前 |
user3623498 · 在#if中更改变量时出现问题 6 年前 |
einpoklum · 来自#cmakedefine替换的意外结果 6 年前 |
Joseph Franciscus · C中预处理器方法的别名++ 7 年前 |
stoper · 防止同一宏在多个转换单元中具有不同的定义 7 年前 |
СеÑгей · MinGW中预处理器g++的奇怪行为 7 年前 |