【发布时间】:2020-04-07 11:12:04
【问题描述】:
我想知道将结构用作伪命名空间(类似于 C++)对在功能上或概念上相互关联的常量进行分组是否是个好主意。
static const struct {
const unsigned int START;
const unsigned int END;
} COUNTER = {.START = 1, .END = 100};
这有什么缺点吗?如果不是,将结构实例及其成员都声明为const 是否是多余的(甚至可能不方便)?这些值的恒定性应该在哪里声明?
【问题讨论】:
-
const是多余的,const struct表示所有成员都是const。 -
为什么不枚举?
-
@bolov 因为枚举不能满足模拟命名空间的目的。
-
没有缺点。好主意。 (除了多余的
const和大写) -
gian 微优化。现在可执行文件是 1M + 4,而不是优化后的 1M。