问答详情
源自:2-7 不可改变的常量

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

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

提问者:kiwilee0406 2016-09-10 14:18

个回答

  • JustWannaHugU
    2016-09-10 14:26:22
    已采纳

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

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

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

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

    他们之间的区别是:

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

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


  • 月意
    2016-09-10 15:46:01

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


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