在编程时,我没有在函数调用后加括号,但只收到了一个警告,我忽略了它:
main.cpp:7:15: warning: expression result unused [-Wunused-value]
if (i == 0) clearDisplay;
^~~~~~~~~~~~
同样的事情也会在仅进行此操作时发生。
int i = 0;
i;
为什么这不是编译错误?
#include <iostream>
void clearDisplay(void);
int main(void){
for(int i = 0; i < 2; i++){
if (i == 0) clearDisplay;
}
}
void clearDisplay(void){
std::cout << "test" << std::endl;
}
编辑:与g++“不带括号调用”函数(不是f()而是f;)。为什么总是返回1?相反,我不问为什么它会被隐式转换为数字,而是为什么编译器不像对if(i=0)
到if(i==0)
那样发出警告。