C语言中#define宏定义和变量定义的联系和区别

2024-12-15 01:33:27
推荐回答(5个)
回答1:

没有联系,至于区别,也就谈不上
宏定义是在编译阶段进行宏替换,说白了就是个记号,而这些记号对应着需要替换的代码,就是个方便编程的工具,没有也行。当然宏定义涉及变量,常量,语句,功能强大,不必多说。
而变量嘛,就是在内存或者寄存器里面,保存数据的容器,再详细一点,就是某个实际存在的数据的符号地址,也就说,变量名的实际上是一些地址,为了便于编程才会有“名字”的。当然也不是说,变量名是指针,指针也是一种变量。
所以,毫无关系。

回答2:

#define宏定义的量是做常量处理的,如#define price 30,下文只要遇到price就代表常量30,他与变量的区别之一是在书出语句中printf(“%d”,a)(a为变量),这是合法的;但如果出现printf(“%d”,price)这就是不合法的。另外宏语句在整个程序中有效,而变量只在某个函数内有效。

回答3:

1.define宏定义是在程序运行中不可以改变的,变量可以改变
2.变量在他所定义的函数内部可以用 出了这个函数 生命周期就结束了;而define实在定义的时候就开始就开始有效,知道程序运行完毕,生命周期结束。
define的优点就是修改方便

回答4:

#define和全局变量都定义在主涵数之上,但是在本文件中要想改变宏定义必须在定义中改在文件中相当于常量,而变量可以在文件中改变其值,而在开始也不用附初值。

回答5:

宏定义主要在预处理阶段完成,由预处理器进行字符替换,变量定义则会在内存中为变量分配地址。