繁体   English   中英

C - 什么是C实现?

[英]C - What are C implementations?

您能否从三个突出显示的表达式中汲取灵感,向我解释一下实现的具体内容?

来自“C Primer Plus”>语言标准

目前,许多C实现都可用。 理想情况下,当您编写C程序时, 它应该在任何实现上都相同 ,只要它不使用机器特定的编程。 为实现这一点, 不同的实现需要符合公认的标准

符合标准的C实现包括一个编译器,它根据标准的要求转换编译单元,一个标准库的实现,用于标准所需的所有函数,以及一些东西 (通常是一个链接器),它将所有内容放在一起构建一个可执行文件。 实际上,该实现还包括随后运行生成的可执行文件所需的所有软件。

当我们谈到C开发环境时,我们通常会谈到编译器(gcc,clang,msvc)。 在每个供应商系统中,您可能有不同的实现,因为例如gcc或clang可以为不同的int大小(32或64位)生成可执行文件,并最终生成不同的endianness。 然后,每个配置构成特定实现。

更详尽的是,应该注意的是,在所谓的独立执行环境中 (通过反对托管执行环境 ),支持标准库可以是可选的。 在现实世界中, 独立模式用于内核开发,因为内核必须能够在标准库中的所有函数都可用之前启动。 否则,如果内核需要在完全加载时才能提供的功能,我们就会遇到鸡和蛋问题...


参考文献:C11的n1570草案将实施定义为:

3.12实施:
在特定控制选项下的特定转换环境中运行的特定软件集,用于执行特定执行环境中的程序转换并支持其中的函数执行

实现是对特定规范的应用。

例如,规范可以是ISO国际标准,实现可以是gcc或clang; 已实现标准规范的编译器以及标准库的实现。

C通常由C编译器实现。 在该段中,您可以相应地替换它。

更通用的术语“实现”的一个原因是编译器可能包含多个前端或由不同的任务组成,或者理论上存在其他形式而不是编译器可想象的。

C标准是针对“抽象机器”定义的,该抽象机器表现为标准描述但没有任何其他要求,并定义映射到真实机器作为实现者的练习。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM