C中的宏与存储方面的预定义数据类型有何不同?

时间:2016-02-06 21:55:19

标签: c macros

与a和b相关的值如何?如何将a和b的值分配给变量(当它们具有不同的数据类型时)

#include <stdio.h>

#define a 1
#define b 1

int main(void)
{   
   printf("%s", (a & b) ? "T":"F"); 
   return 0; 
}

1 个答案:

答案 0 :(得分:5)

它们不会被存储,它们会在预处理器出现在代码中时被替换。所以代码是“字面”等同于

printf("%s", (1 & 1) ? "T" : "F");