字符是唯一具有强制大小的类型
Is char the only type with a mandated size?
在C++标准中:
sizeof(char)
、sizeof(signed char)
和sizeof(unsigned char)
1
。
-
C++还有其他类型具有固定
sizeof
吗? -
空结构是否符合此定义?
-
不。正如你所说,
sizeof(signed char)
、sizeof(unsigned char)
和sizeof(char)
被标准定义为 1。请注意,char
必须是signed
或unsigned
,但它始终被视为不同的类型。其他任何事情sizeof
取决于受某些约束的实现(例如sizeof(long)
不能小于sizeof(int)
.) -
C++标准要求
sizeof
空类是大于零的整数值(否则指针算术会严重中断)。
1) C++中是否有其他类型具有固定大小?
有指定大小的数组:
sizeof(T[N]) == N * sizeof(T)
所以sizeof(char[42])
42
.
2)空结构是否符合这个定义?
空结构既不是char
、signed char
也不是unsigned char
,所以它不符合这个定义。(顺便说一句,它的sizeof
不能0
)。
关于问题 1,您也有 stdint.h
中的类型。
相关文章:
- 通过组合不同的类型来创建唯一的id
- 为什么允许dynamic_cast到非唯一的基类类型?
- 从基类的唯一指针中声明派生类的类型
- C++:如果 std::atomic_flag 是唯一的无锁原子类型,如何在C++中实现无锁数据结构?
- 获取模板函数/泛型 lambda 的唯一返回类型
- 如何制作一个采用类型类的唯一指针?(通用)它不让我
- 为什么要在 c++ 中创建一个指向基元类型的唯一指针?
- C (函数)模板将其返回其唯一参数而无需复制某些类型
- 如何检查参数包中的每个类型是否唯一
- 字符是唯一具有强制大小的类型
- 在编译时生成唯一的类型标识符
- 递归类型真的是构建不连续的任意大小数据结构的唯一方法吗
- 指向同一对象和唯一指针的不同基类型的指针
- 指针类型是"prevent"声明中调用构造函数的唯一方法吗?
- 如何为 lambda 创建唯一类型
- 为什么boost mpl集允许非唯一类型
- 如何在编译时生成密集的唯一类型ID
- 是否为每个模板实例化生成唯一的类型或id?(观察者模式示例)
- 为什么唯一的带符号整数类型会导致clang中的溢出警告
- 在指针类型之间转换的规则,其中cv限定符是唯一的区别