【发布时间】:2014-07-29 14:28:44
【问题描述】:
最近,在this question 中,我看到了一个用于定义单个值的枚举。例如:
enum { BITS_PER_WORD = 32 };
代替:
#define BITS_PER_WORD 32
假设以后不会添加更多成员,那么这样做的好处是什么(如果有的话)? (或者这更多是个人品味的问题)
换句话说,如果我有使用一次性 int 定义的现有代码,是否有充分的理由为上面显示的一次性枚举更改这些?
出于好奇,我比较了一些非平凡代码的 GCC 优化汇编器输出,结果在枚举/定义之间没有变化。
【问题讨论】:
-
在第一种情况下,编译器看到
BITS_PER_WORD并将其等同于 32(除非有什么影响)。它在第二个看到 32。 -
@Eitan T,它很接近但不认为它是重复的,主要是因为我问的是单个值而不是哪个更好。但是对于使枚举不易出错的特定语言特征(例如)。
-
嗯,我不确定这种微小的差异是否能证明一个单独的问题(您的询问可以通过在更广泛的问题或其中一个答案中的评论来完成)。如您所见,答案没有提供特别的新信息。
-
添加了澄清(问题结束),我认为这与一般定义与枚举问题有所不同。
标签: c c-preprocessor