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

its*_*cvk -3 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; 
}
Run Code Online (Sandbox Code Playgroud)

Iha*_*imi 5

它们不存储,它们在预处理器出现在代码中时被替换.所以代码" 字面上 "相当于

printf("%s", (1 & 1) ? "T" : "F");
Run Code Online (Sandbox Code Playgroud)