我一直认为以下类型是“基本类型”,所以我认为我对此的回答 question会是正确的,但令人惊讶的是它被否决了......
在网上搜索,我找到了 this .因此,IBM 也表示这些类型是基本类型。
那么您如何解释该标准? 以下类型(和类似类型)“基本类型”是否符合 C++ 标准?
unsigned int
signed char
long double
short int
unsigned short int
编辑:
再次与此相关 question :
Comceau 和 gcc 不会将“long double”、“short int”或“unsigned int”等类型视为“基本类型”! (而 ibm、intel 和 microsoft 的编译器是这样做的……)
如果他们确实将此类类型视为基本类型,则应编译以下代码:short int i = short int()
编辑:
删除了 long long
类型,因为我忘记了它们还不是官方标准..
最佳答案
当前的 ISO C++03 标准不支持
long long
。但是,C++0x 草案标准确实包括这种类型:
3.9.1 Fundamental types
2 There are five standard signed integer types : “signed char”, “short int”, “int”, “long int”, and “long long int”.
ISO C99 添加了这个特殊的数据类型(虽然这在许多编译器上作为非标准扩展可用)。 C++03 不完全支持所有 C99 功能。然而,相当多的 C++ 编译器允许将其作为扩展(例如,Comeau 需要 --long_long
)。
关于c++ - 基本类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2432111/