我知道在C中将数字常量声明为enum
s而不是使用#define
它们是相当习惯的,或者至少是一种好的样式。
/* bad style */
#define MAXLINE 1024
/* good/better style */
enum {
MAX_LINE = 1024
};
字符串常量的定义是否有等效的规则?
/* is this good style? */
#define HELLO "Hello World"
/* or is this better? */
const char *HELLO2 = "Howdy";
你喜欢哪个?如果可能,请显示这两种方法的一些缺点。
enum
s代替宏常量或const int
常量整数值的原因是这样的事实,这是声明可以作为数组边界可移植的常量整数的唯一类型安全方式。好吧...编译时字符串连接几乎让我对#define
s使用字符串很感兴趣,但是我会坚持const char*
使用static
适用的类型安全性。简而言之,我将使用enum
整数常量和const
变量进行其余的操作。