【发布时间】:2017-05-28 18:44:07
【问题描述】:
我知道这在 SO 上已被多次质疑,但我的问题是 ANSI C (C89) 所特有的。
在 C99 中有子说明符 z 和 t,它们在 ANSI C 中不受支持。
如何使用p 说明符?
【问题讨论】:
-
AFAIK ANSI 自动采用 ISO 标准,因此您应该可以使用相同的标准。如果您的意思是明确的 C89/90 ():没有办法。请注意,C99 不是标准 C;那将是 C11。
-
@levengli:请不要说这种废话!
size_t不能是int和ptrdiff_t不会出现在int不足的系统上,例如大多数 64 位架构和一些 8/16 位架构 -
@DietrichEpp 是的,但是每个 C 标准都明确地使其前身无效,所以“C 标准”总是指最新的。
-
@Olaf 争论这个有什么意义? OP 明确询问 C89。 OP 比你更了解他的环境,所以如果他询问 C89,只需提供答案,或者不提供。
-
@Olaf:2011 ISO C 标准确实是美国国家标准协会(ANSI)目前认可的标准。但是您应该知道实际上 nobody 将 C11 称为“ANSI C”。即使没有澄清的“(C89)”,很明显OP正在询问C89 / C90。 OP的错误(例如)是将该语言称为“ANSI C”。如果您想指出这一点,那很好,但是假装 OP 真的想询问以后的标准是没有帮助的。