在c语言中,把直接使用的常数叫做幻数。
#define SIZE 10
enum{ SIZE = 10 };
const int SIZE = 24;
宏定义是字符替换,没有数据类型的区别,同时这种替换没有类型安全检查,可能产生边际效应等错误;
const常量是常量的声明,有类型区别,需要在编译阶段进行类型检查
const常量是常量的声明,有类型区别,需要在编译阶段进行类型检查
宏定义可以通过
#undef
来使之前的宏定义失效
宏定义不能作为参数传递给函数
const常量可以在函数的参数列表中出现
const常量可以在函数的参数列表中出现
尽量不使用宏,
C语言也有const值,但是他们不能用作数组的界。这样,enum就是C中唯一可用的选择了。