【发布时间】:2013-10-19 19:48:15
【问题描述】:
编辑:添加了一些对问题条件有很大变化的精度,请注意在判断答案之前。
我在const char* 表单下获得了一个环境变量。环境变量可以是
- 未设置(我的意思是未设置,例如,如果环境变量取自批处理环境,
set MyBinaryEnvVar=) - 设置为 0
- 设置为 1
因此,const char* 形式将是
- ""
- “0”
- “1”
我想用一个单行来测试它,未设置和“0”未通过测试,“1”通过它。所以像:
if(getEnvVar("MyBinaryEnvVar")) {dontWorry();}
else {beHappy();}
getEnvVar 返回一个 const char* 。
在 VisualStudio 2010 上的测试表明 envVar 的三个值通过了测试,所以
if("") if("0") if("1") TRUE
谢谢
【问题讨论】:
-
您在寻找ternary operator 吗?
-
究竟什么是“未设置”?空字符串还是别的什么?
-
@CookieOfFortune 也许,我也不知道它在 char* 上的确切行为
-
@jrok 问题已更新
-
我认为至少可以保留一个通用的、有用的信息,那就是如果非空 char* 为真。我认为如果我问起来,我会得到几个下降:p
标签: c++ if-statement char