当无符号/签名long int a; 时 为什么 unsigned / signed long float / double a; 是不可能的?
为什么 声明 错误太多,后者而不是前者?
答案 0 :(得分:1)
有三种浮点类型:float
,double
和long double
。这些都没有等效的无符号,因此将signed
或unsigned
放在它们前面是无效的。没有long float
这样的类型。
答案 1 :(得分:1)
您收到该消息是因为存在long double,但是unsigned long double不存在。 unsigned也可以解释为int,因此在后一个声明中你有两种类型: unsigned 和 long double 。我不相信C ++中存在长期浮动。
答案 2 :(得分:0)
这是因为第一个(long int
)是一个记录的变量类型,而第二个不是。
C ++语言支持的数据类型是:
char
unsigned char
signed char
int
unsigned int
signed int
short int
unsigned short int
signed short int
long int
signed long int
unsigned long int
float
double
long double