宏定义和赋值的区别?
百度上给的是宏定义出来是常量 赋值是变量。假如宏定义a 是5,那么以后出现的a都是5,用int 赋值a=5之后 a也是5 。他们的区别在哪里 本帖最后由 jackz007 于 2019-9-8 14:46 编辑宏定义是文本替换,是给编译器下达的指令,宏定义本身并不产生变量。赋值需要先定义变量,是会在代码运行过程中实际执行到的指令。 int 赋值a=5之后,这个值可以修改,是一个变量。而宏定义是常量,编译器对两者处理的时间也不一样。 shake_a_tree@16 发表于 2019-9-8 15:34
int 赋值a=5之后,这个值可以修改,是一个变量。而宏定义是常量,编译器对两者处理的时间也不一样。
把宏定义后面的值直接改掉不就行了吗 shake_a_tree@16 发表于 2019-9-8 15:34
int 赋值a=5之后,这个值可以修改,是一个变量。而宏定义是常量,编译器对两者处理的时间也不一样。
那这样的话宏定义应用在什么地方呢(赋值干不了的) 本帖最后由 jackz007 于 2019-9-8 23:57 编辑
#include <stdio.h>
#define pi 3.1415926
main(void)
{
float a , s ;
a = pi ;
s = 3.5 * 3.5 * pi ;
printf("a = %.3f\n" , a) ;
printf("s = %.3f\n" , s) ;
} jackz007 发表于 2019-9-8 23:56
第七行代码什么意思 定义 2 个浮点型变量 a 和 s。
楼主,你连这么 ABC 的知识都不了解,就在这里频繁提问,你是想累死别人吗? 项恩浩 发表于 2019-9-8 22:49
那这样的话宏定义应用在什么地方呢(赋值干不了的)
宏定义一般是用做常量。比如圆周率是3.14,可以用宏定义,等过段时间,我想用精度高点的3.1416.这个时候只需要去改宏定义就行,而不需要去修改每一个用到圆周率的地方。
再或者,你给某个数设置一个上限,最大为100,以后需要扩展的话,只要修改宏定义为1千或者1万 shake_a_tree@16 发表于 2019-9-12 17:09
宏定义一般是用做常量。比如圆周率是3.14,可以用宏定义,等过段时间,我想用精度高点的3.1416.这个时候 ...
I can't agree with you!!
宏定义:#define 标识符 数值
就是把标识符赋值为后面的数值
常量是不能在代码体里面改变的 2164930278 发表于 2019-9-12 17:56
I can't agree with you!!
宏定义:#define 标识符 数值
就是把标识符赋值为后面的数值
那就当我没说吧 shake_a_tree@16 发表于 2019-9-12 17:58
那就当我没说吧
不是这句话的意思是
我非常同意您的观点(表示同意到了极点)
页:
[1]