gpt4 book ai didi

c++ - "signed"关键字的实际用途是什么?

转载 作者:IT老高 更新时间:2023-10-28 13:23:10 26 4
gpt4 key购买 nike

我知道无符号整数只是正数(和 0),与普通整数相比,它的值可以翻倍。有没有区别

int variable = 12;

还有:

signed int variable = 12;

何时以及为什么应该使用签名关键字?

最佳答案

只有一个实例可能需要使用 signed 关键字。 signed char 总是与“plain” char 不同的类型,根据实现的不同,它可能是有符号或无符号类型。

C++14 3.9.1/1 说:

It is implementation-defined whether a char object can hold negative values. Characters can be explicitly declared unsigned or signed. Plain char, signed char, and unsigned char are three distinct types [...]

在其他情况下,signed 是多余的。


在 C++14 之前(以及在 C 中),还有第二个实例:位域。例如,int x:2;(在类的声明中)是否与 unsigned int x:2; 相同或相同,这是由实现定义的作为 signed int x:2

C++11 9.6/3 说:

It is implementation-defined whether a plain (neither explicitly signed nor unsigned) char, short, int, long, or long long bit-field is signed or unsigned.

但是,从 C++14 开始,这已被更改,因此 int x:2; 始终表示 signed intLink to discussion

关于c++ - "signed"关键字的实际用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28012943/

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