1、const定义常量,修饰函数参数和函数返回值。被const修饰后受到强制保护,防止意外地被修改。
2、const常量有数据类型,而宏常量没有数据类型。
3、编译器可以对const常量进行类型安全检查。而对宏常量只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误。
View Code
2、const常量有数据类型,而宏常量没有数据类型。
3、编译器可以对const常量进行类型安全检查。而对宏常量只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误。
View Code
1 #define DOUBLE(x) x+x
2 int value = 5*DOUBLE(5);//value = ?
3
4 /*正确的写法*/
5 #define DOUBLE(x) ((x)+(x))


浙公网安备 33010602011771号