c - 预处理器如何进行扩展(在包含的头文件中定义宏)

标签 c scope macros include c-preprocessor

我有一个包含常量 F_CPU 的头文件,我使用了宏保护

标题.h

#ifndef F_CPU
#define F_CPU  1000000UL
#endif

和source.c文件

#define F_CPU 16000000UL
#include "header.h"

第一个宏(在 c 文件中)如何扩展尚未包含的值?

最佳答案

使用预处理器的 -E 选项来跟踪发生的情况。您在 source.c 的第一行定义 F_CPU 宏,之后当包含头文件时,由于 #ifndef 保护,头文件中的宏定义不会发生。请注意,您的代码中没有宏扩展。使用宏时会发生扩展。

关于c - 预处理器如何进行扩展(在包含的头文件中定义宏),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23216483/

相关文章:

javascript - 如何限制使用相同数据的多个变量中一个变量的数据更改?

c++ - 类型、性质和含义(什么是) "#call"in c++

c++ - 有什么方法可以使内部在宏中通用?

c - 返回一个文件数组

将一串数字转换为整数

c - 我正在尝试在终端上通过 gcc 在 linux 中使用 getche()

javascript - "this"闭包内的关键字

javascript - 如何使用函数增加对象中参数的值?

使用宏连接整数

c - 链表段错误。 C