#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/

10-11 15:30