gpt4 book ai didi

c - 对 unsigned int 按位或而不发出警告

转载 作者:行者123 更新时间:2023-11-30 18:22:25 25 4
gpt4 key购买 nike

我正在尝试重写以下代码:

$ cat t.c 
int main()
{
unsigned int i = 0;
int v = 3;
i |= v;
return 0;
}

使用最近的 gcc,您应该会收到以下警告:

$ gcc -Wconversion t.c
t.c: In function ‘main’:
t.c:5:3: warning: conversion to ‘unsigned int’ from ‘int’ may change the sign of the result [-Wsign-conversion]

我应该如何重写按位或以避免此警告,同时保持代码可读性。 unsigned int i 是库代码中非常深的内容,因此我无法将其更改为 int。

最佳答案

您不应该将更改为unsigned,而是更改为它。位运算始终最好在无符号变量上执行。

使v 无符号!

关于c - 对 unsigned int 按位或而不发出警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21983963/

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