我想创建一个if声明,分配和检查变量的位置.如果变量的值是可接受的,我想在if体内使用它.这是我认为我能做到的一个例子:
if ((int result = Foo()) != 0) {
// use result
}
Run Code Online (Sandbox Code Playgroud)
我假设Foo()返回一些值,它被赋值给result赋值运算符=,并由赋值运算符返回,最后检0入!= 0.不幸的是,它导致编译错误:
main.cpp:31:10: error: expected primary-expression before ‘int’
if ((int i = Foo()) != 0)
^
main.cpp:31:10: error: expected ‘)’ before ‘int’
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种错误?有什么方法可以解决它?
支持逻辑,但在if语句中声明变量并以这种方式使用它不是.原因与初始化程序的工作方式与常规赋值不同,但解决这个问题很简单.
只是做这样的事情.
int result;
if ((result = Foo()) != 0) {
// use result
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
288 次 |
| 最近记录: |