c - 多个 #ifndef 语句 - 应用哪一个

标签 c gcc ifndef

假设我有五个文件:main.c、sample1.c、sample1.h、sample2.csample2.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/

相关文章:

ios - ifndef,常量的定义和直接赋值

c - 有什么办法可以在不增加变量的情况下解决这个数学问题吗?

c - 与传感器 CCS 编译器的 I2C 通信

c++ - Qt + iperf3 = lconv 未声明

bash - 使用 ifdef 和 ifndef 指令

C头文件#ifndef#include错误

c - Linux 和 C 中的 SPI 超时

c - 使用链表将数据插入堆栈

linux - 如何在 Linux 上启用 ccache

gcc - 在 travis CI 上运行 Makefile 时找不到获取 gcc 命令