gpt4 book ai didi

c - 修复 "comparison between signed and unsigned integer"警告的首选方法?

转载 作者:行者123 更新时间:2023-12-04 03:14:04 25 4
gpt4 key购买 nike

安全修复“有符号和无符号整数之间的比较”警告的首选方法是什么?在我的例子中,我必须将一些 uint_32 变量与#define 常量进行比较。

真正简化:

#define MAX(A,B) ({ __typeof__(A) __a = (A); __typeof__(B) __b = (B); __a < __b ? __b : __a; })
#define c (10)
unsigned int d = 11;
if(MAX(c,d)>10){
//...
}

但我真的有很多这样的案例 - 你有什么建议可以解决这个问题?

最佳答案

在这种情况下,您也可以将常量更改为无符号:

#define c 10U

或者,使用强制转换,以便宏中的 typeof 创建一个 unsigned 变量:

if (MAX((unsigned)c, d) > 10) {

关于c - 修复 "comparison between signed and unsigned integer"警告的首选方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4486796/

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