我知道无符号整数只是正数(和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 intLink to discussion

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

10-11 19:30