【发布时间】:2013-07-31 16:29:19
【问题描述】:
传统上,严格来说,将 signed char 传递给 ctype.h 谓词是错误的,因为它们仅定义为 -1 到 255,因此 -128 到 -2 最终可能会读取数组边界之外的值.
这个问题是否已修复,或者严格来说,您仍然必须使用 unsigned char 来避免现代 C 版本中未定义的行为?
【问题讨论】:
-
现代程序遇到 128-255 范围内的字符的机会只会越来越多,如果将其视为有符号字符,则会被误解为否定字符,因此答案是“比以往任何时候都多”。跨度>
标签: c undefined-behavior c11 ctype