#include <stdio.h>
#define MIN 0
#if defined(MIN) + defined(MAX)
#define MAX 10
#endif
int main()
{
printf("%d %d\n", MAX, MIN);
return 0;
}
输出
10 0
#if defined(MIN) + defined(MAX)
的含义是什么?为什么在稍后定义
#define MAX 10
时它会工作? 最佳答案
The defined
operator根据是否定义了符号,计算结果为0或1。
算术在预处理器表达式中工作,1+0是1,因此取#if
。
关于c - 如果定义了“+”的功能?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21557613/