多语言展示
当前在线:460今日阅读:23今日分享:25

#define 宏定义

C语言提供了宏定义机制,对于“宏定义”,宏是在程序翻译,解释的时候,就翻译成二进制代码。不像一些局部变量那样,只有在运行的时候,才在程序的堆栈中定义。所以,在局部变量中,我们可以定义“同名”的局部变量。那么,我们推理,“宏”是在程序编译的时候,就翻译过来了,所以,不能够存在同名的宏定义。如果想重新定义宏的值,可以使用#undef取消宏定义,重新定义宏的值。
工具/原料
1

windows操作系统、linux操作系统

2

VC/VS, GCC

方法/步骤
1

定义两个不同的函数,在函数中使用#define关键字定义宏。

2

程序编译运行结果如下:

3

可以看到,运行了不同的函数,输出宏定义的值是一样的。但是,如果我们修改宏的值不同,如下:

4

然后,编译结构如下:

5

可以看到,编译输出ABC宏重定义了。是因为,对ABC宏定义了不同的值。那么,如果我们想在程序中对ABC宏重定义,可以使用#undef关键字取消宏的定义,然后,再重新定义宏。如下:

6

程序云结构如下

方法/步骤2

可以看到,编译输出 ABC 宏是两个不同的值。第一个宏定义输出之后,使用#undef关键字取消定义,然后,再重新定义ABC宏的值。

推荐信息