我知道无符号整数只是正数(和0),与普通int相比,其值可以加倍。两者之间有什么区别吗
int variable = 12;
和:
signed int variable = 12;
什么时候以及为什么要使用signed关键字?
最佳答案
您可能只想在其中使用signed
关键字的一个实例。 signed char
始终与“普通” char
不同,后者可以是带符号或无符号类型,具体取决于实现方式。
C++ 14 3.9.1/1说:
在其他情况下,signed
是多余的。
在C++ 14之前(以及在C中),还有第二种情况:位域。例如,int x:2;
(在类的声明中)与unsigned int x:2;
相同还是与signed int x:2
相同,由实现定义。
C++ 11 9.6/3说:
但是,自C++ 14起,已对此进行了更改,因此int x:2;
始终表示signed int
。 Link to discussion
关于c++ - “signed”关键字的实际用途是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28012943/