define宏是在预处理阶段展开。 const常量是编译运行阶段使用。 (2) 类型和安全检查不同 define宏没有类型,不做任何类型检查,仅仅是展开。 const常量有具体的类型,在编译阶段会执行类型检查。 (3) 存储方式不同 define宏仅仅是展开,有多少地方使用,就展开多少次,不会分配内存。(宏定义不分配内存,变量定义分配内存。
1 . const有类型,define无类型(最重要的) define只是在预处理阶段做个简单的替换,而const在编译运行阶段是有严格的类型检查的 2 . const常量存储于程序的数据段,而#define常量是在代码段 3 . const比较节约存储空间 const在声明的时候不会真正分配空间,编译器通常不为普通const常量分配存储空间,而是将它们保存在符...
(1)编译器处理方式不同 define宏是在预处理阶段展开。 const常量是编译运行阶段使用。 (2)类型和安全检查不同 define宏没有类型,不做任何类型检查,仅仅是展开。 const常量有具体的类型,在编译阶段会执行类型检查。 (3)存储方式不同 define宏仅仅是展开,有多少地方使用,就展开多少次,不会分配内存。 const常量会在...
define宏是在预处理阶段展开。 const常量是编译运行阶段使用。 (2) 类型和安全检查不同 define宏没有类型,不做任何类型检查,仅仅是展开。 const常量有具体的类型,在编译阶段会执行类型检查。 (3) 存储方式不同 define宏仅仅是展开,有多少地方使用,就展开多少次,不会分配内存。(宏定义不分配内存,变量定义分配内存。