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