C语言提供了宏定义机制,对于“宏定义”,宏是在程序翻译,解释的时候,就翻译成二进制代码。不像一些局部变量那样,只有在运行的时候,才在程序的堆栈中定义。所以,在局部变量中,我们可以定义“同名”的局部变量。那么,我们推理,“宏”是在程序编译的时候,就翻译过来了,所以,不能够存在同名的宏定义。如果想重新定义宏的值,可以使用#undef取消宏定义,重新定义宏的值。
工具/原料
1
windows操作系统、linux操作系统
2
VC/VS, GCC
方法/步骤
1
定义两个不同的函数,在函数中使用#define关键字定义宏。
2
程序编译运行结果如下:
3
可以看到,运行了不同的函数,输出宏定义的值是一样的。但是,如果我们修改宏的值不同,如下:
4
然后,编译结构如下:
5
可以看到,编译输出ABC宏重定义了。是因为,对ABC宏定义了不同的值。那么,如果我们想在程序中对ABC宏重定义,可以使用#undef关键字取消宏的定义,然后,再重新定义宏。如下:
6
程序云结构如下
方法/步骤2
可以看到,编译输出 ABC 宏是两个不同的值。第一个宏定义输出之后,使用#undef关键字取消定义,然后,再重新定义ABC宏的值。
上一篇:图片倾斜了怎么办?