当前位置: 首页 > 知识库问答 >
问题:

C最低标准要求

程赞
2023-03-14

来自C标准ISO/IEC 9899:201x 5.1.2.3 P6:

符合要求的实现的最低要求是:

  • 对易失性对象的访问严格按照抽象机器的规则进行评估。
  • 在程序终止时,写入文件的所有数据应与根据抽象语义执行程序所产生的结果相同。
  • 交互设备的输入和输出动态应按照7.21.3的规定进行。这些要求的目的是使无缓冲或行缓冲输出尽快出现,以确保提示消息在程序等待输入之前实际出现。

共有1个答案

松英喆
2023-03-14

>

  • 是的,C实现(不仅仅是编译器--标准库、链接和运行时支持,和/或用于实现C的任何其他东西都包括在内),它产生的可观察行为1与符合抽象机器符合的行为相同。标准中的所有其他要求和段落都不仅仅是额外的。它们定义了抽象机器的行为,因此它们有助于描述可观察的行为必须是什么。

    是的,一个没有可观察行为的程序可能被优化为一个仅仅返回的程序。注意,该标准实际上并不包括可观察行为中的退出状态,因此异或eax,eax在技术上是不需要的。然而,这很可能只是标准中的一个不经意的缺陷,而不是意图。

    1程序的行为并不是规范要求的唯一东西。实现还必须记录各种实现定义的行为,例如。因此,这个假设的C实现的行为与某个抽象机器相同,还必须包含所需的文档。

  •  类似资料:
    • C++ 标准库可以分为两部分: 标准函数库: 这个库是由通用的、独立的、不属于任何类的函数组成的。函数库继承自 C 语言。 面向对象类库: 这个库是类及其相关函数的集合。 C++ 标准库包含了所有的 C 标准库,为了支持类型安全,做了一定的添加和修改。 标准函数库 标准函数库分为以下几类: 输入/输出 I/O 字符串和字符处理 数学 时间、日期和本地化 动态分配 其他 宽字符函数 面向对象类库 标

    • 现代C编译器支持一些或全部的ANSI提议的标准C。无论何时可能的话,尽量用标准C编写和运行程序,并且使用诸如函数原型,常量存储以及volatile(易失性)存储等特性。标准C通过给优化器提供有有效的信息以提升程序的性能。标准C通过保证所有编译器接受同样的输入语言以及提供相关机制隐藏机器相关内容或对于那些机器相关代码提供警告的方式提升代码的可移植性。 17.1 兼容性 编写很容易移植到老编译器上的代

    • 问题内容: 因此,Swift 2.0即将推出Xcode 7,使用Swift 2.0所需的最低iOS / OS X系统版本是什么? 问题答案: 苹果员工说: iOS 7 / OS X 10.9,与Swift 1.0相同。 更新:我猜这是因为运行时已打包到内置的应用程序/库/框架/中,与Swift 1.x相同。

    • 所以Swift 2.0即将推出Xcode 7,使用Swift 2.0所需的最低iOS/OSX系统版本是多少?

    • clearerr语法: #include <stdio.h> void clearerr( FILE *stream ); clearerr函数重置错误标记和给出的流的EOF指针. 当发生错误时,你可以使用perror()判断实际上发生了何种错误.相关主题: feof(), ferror(), 和perror(). fclose语法: #include <stdio.h> i

    • 标准 C I/O clearerr() 清除错误 fclose() 关闭一个文件 feof() 如果到达文件尾(end-of-file)返回"True"(真) ferror() 检查一个文件错误 fflush() 书写输出缓存的内容 fgetc() 从流获取一个字符 fgetpos() 获取文件位置指针 fgets() 从一个流获取一串字符 fopen() 打开一个文件 fprintf() 打印格