在许多程序中,#define
的作用与常数相同.例如
#define FIELD_WIDTH 10
const int fieldWidth = 10;
我通常认为第一种形式比另一种更受欢迎,依靠预处理器来处理基本上是应用程序决策的事情.这种传统有什么原因吗?
在许多程序中,#define
的作用与常数相同.例如
#define FIELD_WIDTH 10
const int fieldWidth = 10;
我通常认为第一种形式比另一种更受欢迎,依靠预处理器来处理基本上是应用程序决策的事情.这种传统有什么原因吗?
这有一个非常坚实的理由:C中的const
并不意味着某些东西是恒定的.它只是意味着变量是只读的.
在编译器需要真常量的地方(例如非VLA数组的数组大小),使用const
变量(例如fieldWidth
)是不可能的.