ISO C标准要求CHAR_BIT至少为8.
POSIX强制CHAR_BIT等于8,并且(几乎?)所有使用八位字节的网络和通信标准,是否有任何当代C实现CHAR_BIT> 8?
(注意:我对使用18或36位字的历史计算机体系结构不感兴趣.这是关于C的真正问题,因为它在当前的硬件上使用;考虑使用C99或更高版本的系统).
这是未定义的行为吗?标准的相关部分并没有多说。
size_t n = SIZE_MAX / sizeof(double) + 1;
size_t m = sizeof(double[n]);
Run Code Online (Sandbox Code Playgroud) 是否size_t保证足够大以表示任何类型的大小?根据此参考:
size_t可以存储任何类型(包括数组)的理论上可能存在的对象的最大大小。
通常,这是一个可靠的参考,但我在标准的相关部分中找不到任何证明或质疑此主张的内容。