根据 ISO/IEC 9899:2017:
严格遵守的程序应仅使用本文档中指定的语言和库的那些功能。它不应产生依赖于任何未指定、未定义或实现定义的行为的输出,并且不应超过任何最小实现限制。
然而,几页后,它说:
活动位置是显示设备上该
fputc函数输出的下一个字符将出现的位置。将打印字符(由函数定义)写入显示设备的目的isprint是在活动位置显示该字符的图形表示,然后将活动位置前进到当前行的下一个位置。书写方向是特定于语言环境的。如果活动位置位于一行的最终位置(如果有),则显示设备的行为未指定。
由于似乎没有任何方法可以判断活动位置是否位于一行的最终位置,因此无法在不冒调用未指定行为的风险的情况下输出到显示设备,因此不可能编写严格遵守程序。这是一个错误还是我遗漏了什么?
c standards standards-compliance unspecified-behavior output