幻数、宏

在c语言中,把直接使用的常数叫做幻数。

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