1
7
没有这样的保证。
虽然实现通常具有相同的大小
还要注意
编辑: 在这个答案之后,问题发生了一些变化…所以: 所以问题是,你是否可以假设或者你是否保证在C99之前的版本中保持size_t的时间足够长。
即使在C89中也没有这种保证。
另一个问题是,是否有任何保证size_t适合任何其他标准化整数类型(除了明显的异常,如ssize_t、ptrdiff_t等)。
本标准同样没有此类保证。
|
2
3
不
在C89/C90中,
这种隐含的保证在C99中消失了
即使在C89/C90中,只有当您有一个符合要求的C89/C9实施时,您才可以依赖担保。C99之前的编译器通常在C89/C90标准之上提供扩展——例如,编译器可能支持
问题是关于
具有未定义的行为,除非
对于C99和更高版本,您可以打印
如果愿意,您可以测试
(C标准版本注释。第一个C标准于1989年由ANSI发布。1990年由ISO重新发布,增加了额外的样板部分。所以C89和C90是描述相同语言的两个不同文档。后来的C99和C11标准由ISO发布。所有三个ISO C标准均由ANSI正式采用。因此严格来说,“ANSI C”应指ISO C11——但由于历史原因,该短语仍用于指1989年的标准。) |
Robert E. Brown · 嵌套类的嵌套类的访问权限 6 年前 |
YSC · 通过成员指针访问受保护的成员:这是黑客行为吗? 6 年前 |
Swift - Friday Pie · 交换数学运算的阶 6 年前 |
Acorn · Linux内核的\uu is\u constexpr宏 6 年前 |
Acorn · 检测宏中的整数常量表达式 6 年前 |
Petr Skocik · 兼容类型并忽略C类型系统中的顶级限定符 6 年前 |