Tag: if语句

是否存在else if语句?

前一段时间没有站在这样的线路之后: if (arg) invk(test); else if (test) { alot(); stuff(); } 我决定在1920×1200次中为自己提供更好的可读性,而不是省略{} 。 所以我写了一个工具来重新格式化我现有的代码。 后来我注意到该工具中的一个错误 if (x) { … } else if(y) { … } else if(z) { … } 已经被改变了(没有通过不经意地改变行为)成: if (x) { … } else { if(y) { … } else { if(z) { … } } } 这让我意识到(无意识)这实际上是C语言和语义规则的其他内容。 那么甚至还有一个像else if()现有的声明,或者它只是滥用语义导致这个有用但是(为了这个目的让我们称它)混淆起源的措辞打破了任何格式化规则并且只是作为人类可读的?

在C / C ++中`if(CONSTANT){…}`是否已经过优化?

现代编译器是否优化了一段代码,如if(CONSTANT) { … } ,其中CONSTANT是文字,模板参数, const变量或constexpr变量? 他们是否删除整个if(0) { … }表达式或“抛弃” if(1) { … }的if(1)部分?

C宏:#if检查是否相等

有没有办法检查宏中的数字相等性? 我想做点什么 #define choice 3 #if choice == 3 …. #endif #if choice == 4 … #endif C宏是否支持这样的事情?

unsigned在if语句比较中签名?

我在这个网站上搜索了一个答案,发现很多对未签名/签名比较的回复,但是这个问题是只比较了无符号参数,但它仍然很有趣。 以下代码的问题是第一个if -statment不会发生(“hello”),而第二个(“world”)就是这样。 我已经解释为在if -statment内部进行的计算会生成一个负数,但是保存到变量的结果完全相同的计算不会(即使结果被保存到有符号变量)。 使用的编译器是gcc 4.4。 unsigned short u16_varHigh; unsigned short u16_varLow; unsigned short u16_Res1; signed short s16_Res1; u16_varHigh = 0xFFFF; u16_varLow = 10; u16_Res1 = u16_varLow – u16_varHigh; // response is 11 as expected s16_Res1 = u16_varLow – u16_varHigh; // response is 11 as expected // Does not enter if( (u16_varLow – u16_varHigh) […]

if-statement和bitwise操作在这个例子中是如何相同的?

我正在阅读这个答案 ,并提到这个代码; if (data[c] >= 128) sum += data[c]; 可以用这个替换; int t = (data[c] – 128) >> 31; sum += ~t & data[c]; 我很难理解这一点。 有人可以解释按位运算符如何实现if语句的作用吗?

C编程 – 循环直到用户输入数字scanf

我需要帮助我的程序错误检查。 我要求用户输入一个整数,我想检查用户输入是否为整数。 如果没有,请重复scanf。 我的代码: int main(void){ int number1, number2; int sum; //asks user for integers to add printf(“Please enter the first integer to add.”); scanf(“%d”,&number1); printf(“Please enter the second integer to add.”); scanf(“%d”,&number2); //adds integers sum = number1 + number2; //prints sum printf(“Sum of %d and %d = %d \n”,number1, number2, sum); //checks if sum […]

C中的复合条件:if(0.0 <a <1.0)

我最近注意到以下表达式在我的编译器(Clang)中编译: float a; if (0.0 < a < 1.0) { … } 这是否符合我的期望? 我希望它的评估条件与此条件相同: if (0.0 < a && a < 1.0) { … } 如果是这样,那么从何时以及与其他编译器一起编写这种简短forms的条件?