小编Tux*_*ux1的帖子

是否可以编写一个严格符合要求的 C 程序来输出到显示器?

根据 ISO/IEC 9899:2017:

严格遵守的程序应仅使用本文档中指定的语言和库的那些功能。它不应产生依赖于任何未指定、未定义或实现定义的行为的输出,并且不应超过任何最小实现限制。

然而,几页后,它说:

活动位置是显示设备上该fputc函数输出的下一个字符将出现的位置。将打印字符(由函数定义)写入显示设备的目的isprint是在活动位置显示该字符的图形表示,然后将活动位置前进到当前行的下一个位置。书写方向是特定于语言环境的。如果活动位置位于一行的最终位置(如果有),则显示设备的行为未指定。

由于似乎没有任何方法可以判断活动位置是否位于一行的最终位置,因此无法在不冒调用未指定行为的风险的情况下输出到显示设备,因此不可能编写严格遵守程序。这是一个错误还是我遗漏了什么?

c standards standards-compliance unspecified-behavior output

4
推荐指数
1
解决办法
117
查看次数