isspace()是否接受getchar()值?
|
如果输入为
representable as
unsigned char或等于EOF,则
isspace()有效.
当getchar()!= EOF;所有getchar()返回的值都可以表示为unsigned char吗? uintmax_t count_space = 0;
for (int c; (c = getchar()) != EOF; )
if (isspace(c))
++count_space;
愿这段代码导致未定义的行为吗? 解决方法
根据C11
WG14 draft version N1570:
即, > isspace()接受getchar()值 如果你认为它太明显了(“它还能做什么”),那就再想一想.例如,在the related case:isspace(CHAR_MIN)可能是未定义的,即,将字符传递给字符分类函数可能是未定义的行为! 如果UCHAR_MAX> INT_MAX结果可能是实现定义的:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
