gpt4 book ai didi

c - C 中 if/else 语句的问题

转载 作者:行者123 更新时间:2023-11-30 19:34:38 26 4
gpt4 key购买 nike

我的 if/else 结构遇到了一些问题。

所以,对于 " num = 65279" ,我不太确定为什么,我写的这个 if/else 结构最终会进入第一个 if,如预期的那样,但也会进入最后一个 if ("if(num <= 65535") 。我不确定为什么会发生这种情况,因为我正确使用了 { } 。我怎样才能更好地重构我的代码以使这个错误不再发生。或者我在做什么才会发生这个错误? num 是一个无符号短整型。

我正在使用 Linux gcc 编译器。

if(num >= 55296 && num < 56320){ 
...
}
else{
if(num <= 127){
...
}
else{
if(num <= 2047){
...
}
else{
if(num <= 65535){ ...
}
}
}
}

最佳答案

你应该正确地格式化你的代码,这使它更容易理解。在这里您可以看到程序将达到的所有点(...)。您提到的两个 if 语句都可以根据您的代码运行。如果这不是应该的样子,那么您需要重写它。如果它们都应该能够运行,那么您需要指定 num 的值并提供更多信息。

if(num >= 55296 && num < 56320) { 
...
} else {
if(num <= 127) {
...
} else {
if(num <= 2047) {
...
} else {
if(num <= 65535) {
...
} else {//I added this
...
}
}
}
}

编辑:我看到你说 num 是一个 2 字节整数,所以我添加的部分永远不会真正运行。 “if(num <= 65535) {”将始终为 true,因为您无法存储任何更高的数字。

关于c - C 中 if/else 语句的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43575251/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com