假设我有五个文件:main.c、sample1.c、sample1.h、sample2.c
和 sample2.h
,其中每个文件 DEBUG_PRINTS
定义如下:
#ifndef DEBUG_PRINTS
#define DEBUG_PRINTS 0
#endif
代码是用gcc编译的:
gcc -Wall main.c sample1.c sample2.c -o main
现在我将一个文件中的 DEBUG_PRINTS
的值更改为 1
。如果不打印到终端,您如何确定将应用哪个值?
此外,如何为每个文件在本地定义 DEBUG_PRINTS
- 与对变量使用 static
关键字相同?
最佳答案
每个文件都是单独编译的。一个文件中的宏在任何其他文件中都不可见。一旦文件被独立编译,生成的对象将链接在一起以创建可执行文件。
关于c - 多个 #ifndef 语句 - 应用哪一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50312060/