【发布时间】:2010-10-14 18:14:51
【问题描述】:
对于使用多个环境变量的应用程序,在获取环境变量并将它们放入一个结构或一堆const 时,是否有某种约定或“最佳实践”?显然,我想回退到每个环境变量的默认值。现在,使用以下方法似乎是一种非常混乱的方式:
char* x;
const SOME_VARIABLE;
if (NULL == (x = getenv("SOME_VARIABLE")))
SOME_VARIABLE = 5; // default value
else
SOME_VARIABLE = x;
如果环境变量为空,我还可以编写一个包装 getenv 的函数以返回默认值,但我不确定这是否是最好的方法。我也可以不使用const,但这似乎也不是一件好事。
有什么想法吗?
【问题讨论】:
-
顺便说一句,在 C++ 中将任何变量或常量命名为全部大写并不是一个好主意,因为按照惯例,预处理器使用所有大写名称,并且预处理器宏可以轻松地破坏您的变量。跨度>
-
啊,谢谢你的提示。我的印象是常量通常应该全部大写。
-
@Dav,你可能从所有常量都是宏的代码中学到了这种风格(
#define SOME_VARIABLE 5)。它们是大写的,因为它们是宏,而不是因为它们是常量。 -
@dav 我见过的一个约定是在每个常量变量名前加上“k”,如
kSomeVariable。 -
啊,是的; K 代表康斯坦特。等等……
标签: c++ variables constants environment getenv