/*
1、宏定义在结构体里面,只是方便代码的阅读,一般这种情况,大部分是结构体里面有标志量,方便阅读。
2、在结构体里面定义一个宏,在结构体外面也可以定义同样的宏,如果两个宏的内容不一样,那么在使用的地方,哪个宏近就使用哪个。(编译会有警告)
宏就是替换,从上面开始,一直往后面替换。如果宏新定义了,那么就使用宏的新值继续替换。
*/
#include <stdio.h>
struct TestMacro
{
int a;
int b;
#define MACRO 10
};
void func()
{
int num = 0;
num = MACRO;
printf("func=%d\n",num);
}
#define MACRO 20
int main(int argc, char *argv[])
{
int num = 0;
num = MACRO;
func();
printf("main=%d\n",num);
return 0;
}
执行结果:
编译告警: