【发布时间】:2017-05-09 06:09:21
【问题描述】:
我有一个 C 代码:
...
void caller() {
#define YES 1
#define NO 0
}
...
当caller 被调用/执行时,#define 两条线会执行,还是仅在编译时执行。
【问题讨论】:
-
在编译之前。在预处理步骤。
-
是的......我就是这个意思。那么这是否意味着
caller方法实际上是空的? -
预处理器代码不执行。您的函数体将与
void caller() { }相同 -
这里什么都不会执行...
-
顺便说一句,在 C 中它是一个函数,而不是一个方法。空参数列表表示没有运行时参数检查,应该是:
void caller(void)。 C++ 中的情况有所不同,但您将其标记为 C。
标签: c c-preprocessor preprocessor-directive