从此处查看此报价,位于页面底部。(我相信引用的关于const
s 的评论也适用于invariant
s)
枚举与 const 的不同之处在于它们不会占用最终输出的对象/库/可执行文件中的任何空间,而 const 会。
所以显然value1
会使可执行文件膨胀,而value2
被视为文字并且不会出现在目标文件中。
const int value1 = 0xBAD;
enum int value2 = 42;
回到 C++ 中,我一直认为这是由于遗留原因,以及无法优化常量的旧编译器。但如果这在 D 中仍然成立,那么这背后一定有更深层次的原因。有谁知道为什么?