我有一个 C 代码:
...
void caller() {
#define YES 1
#define NO 0
}
...
这两个#define
行是在调用/执行caller
时执行,还是仅在编译时执行。
最佳答案
预处理器宏不会执行,它们只是代码的命名片段,如果您使用它们,它们将被预处理器替换为其内容。了解有关预处理器宏的更多信息 here .
因此,经过预处理后,您的代码将是:
void caller() {
}
假设您在#define
之后使用了YES
宏:
#define YES 1
#define NO 0
void caller() {
printf("My answer is: %d", YES);
}
上面的代码经过预处理后如下:
void caller() {
printf("My answer is: %d", 1);
}
关于c - 这个什么时候执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43862311/