声明 C++ 中的类型太多
Posted
技术标签:
【中文标题】声明 C++ 中的类型太多【英文标题】:Too many types in declaration C++ 【发布时间】:2015-06-28 09:27:48 【问题描述】:当 unsigned/signed long int a; 是可能的 为什么 unsigned/signed long float/double a; 是不可能的?
为什么我得到 too many types in declaration 错误,后者而不是前者?
【问题讨论】:
因为没有无符号浮点数?error: 'signed' or 'unsigned' invalid for 'a'
& error: 'long' invalid for 'a'
【参考方案1】:
共有三种浮点类型:float
、double
和 long double
。这些都没有无符号等价物,因此将signed
或unsigned
放在它们前面是无效的。没有long float
这样的类型。
【讨论】:
【参考方案2】:您收到该消息是因为存在 long double,但 unsigned long double 不存在。 unsigned 也可以解释为 int,因此您在后一个声明中拥有两种类型:unsigned 和 long double。我不相信 C++ 中有很长的浮点数。
【讨论】:
【参考方案3】:这是因为第一个 (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
【讨论】:
以上是关于声明 C++ 中的类型太多的主要内容,如果未能解决你的问题,请参考以下文章
使用 mingw64 c++ 编译 imapi2 应用程序时 imapi2.h 中的错误“没有类型的 '__RPC__range' 声明”