gpt4 book ai didi

size - C89:有符号/无符号不匹配

转载 作者:行者123 更新时间:2023-12-04 17:05:30 24 4
gpt4 key购买 nike

有符号/无符号不匹配一定很糟糕吗?

这是我的程序:

int main(int argc, char *argv[]) {
unsigned int i;

for (i = 1; i < argc; i++) { // signed/unsigned mismatch here

}
}
argc已签署, i不是。这是一个问题吗?

最佳答案

“有符号/无符号不匹配”可能很糟糕。在您的问题中,您是在询问比较。当比较相同基类型的两个值时,一个有符号,一个无符号,有符号值被转换为无符号值。所以,

int i = -1;
unsigned int j = 10;

if (i < j)
printf("1\n");
else
printf("2\n");

打印 2,而不是 1。这是因为在 i < j , i转换为 unsigned int . (unsigned int)-1等于 UINT_MAX ,非常大的数目。因此,条件评估为假,您会得到 else条款。

对于您的特定示例, argc保证为非负数,因此您不必担心“不匹配”。

关于size - C89:有符号/无符号不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2262728/

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