为了账号安全,请及时绑定邮箱和手机立即绑定

#define a 10 和int a=10有什么区别

感觉两者并没有区别啊   printf(“%d”,a)打出来不都一样吗

正在回答

2 回答

#define a 10是宏定义,其格式为#define 标识符 字符串

宏定义就是把一段长代码(字符串)define定义成一个短的关键词,以后下面程序要多次用到那段长代码的时候,直接用关键词代替,减少代码量,还有在出错维护的时候也只要把define后的字符串修改,全文的关键词也就变了,方便维护

int a = 10;仅仅是定义一个int类型的变量并赋值为10,在内存中开拓了一块区域

宏定义写在函数的花括号外边,作用域为其后的程序,通常在文件的最开头,你说print出来没有什么区别是对的,但一般在项目中不这样用,凡事都有规则嘛!

他们之间的区别是:

宏定义不分配内存,变量定义分配内存。

宏定义是C提供的一种预处理机制,预处理是在编译之前的处理(你后面会接触到)


1 回复 有任何疑惑可以回复我~
#1

kiwilee0406 提问者

非常感谢!
2016-09-10 回复 有任何疑惑可以回复我~

#define a 10是一个常量,无法改变


int a=10 是一个变量,可以改变

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

#define a 10 和int a=10有什么区别

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信