![]() |
1
26
Header guard保护您不受单个源文件中多个包含项的影响,而不受多个源文件的影响。我想你的问题源于不理解这个概念。
|
![]() |
2
28
我在过去使用过一件事(当全局变量流行时): var.h文件:
一 .c文件(通常是包含main()的文件):
请注意,DEFINE_GLOBALS不是头保护,而是允许根据是否定义变量来声明/定义变量。此技术允许声明/定义的一个副本。 |
![]() |
3
10
分别地 . 每一个都包括您的头文件。一旦每个人都有一个定义。它们在连接时发生冲突。
然后你就可以在 只有一个 .c文件。 |
![]() |
4
8
在同一翻译单位 (即在同一个.c源文件中)。如果将文件包含在两个或多个翻译单元中,则它们无效。 |
![]() |
Timo · 如果宏变量后跟构成有效标识符的字符,则不会展开宏变量 7 年前 |
![]() |
user3623498 · 在#if中更改变量时出现问题 7 年前 |
![]() |
einpoklum · 来自#cmakedefine替换的意外结果 7 年前 |
![]() |
Joseph Franciscus · C中预处理器方法的别名++ 7 年前 |
![]() |
stoper · 防止同一宏在多个转换单元中具有不同的定义 7 年前 |
![]() |
СеÑгей · MinGW中预处理器g++的奇怪行为 7 年前 |