C - 什么是 C 实现?

标签 c implementation

您能从三个突出显示的表达式中汲取灵感,给我解释一下实现到底是什么吗?

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

Currently, many C implementations are available. Ideally, when you write a C program, it should work the same on any implementation, providing it doesn’t use machine-specific programming. For this to be true in practice, different implementations need to conform to a recognized standard.

最佳答案

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

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

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


引用资料:C11 的 n1570 草案将实现定义为:

3.12 实现:
特定的软件集,在特定的翻译环境下运行 控制选项,执行程序的翻译,并支持执行 在特定的执行环境中运行

关于C - 什么是 C 实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55691197/

相关文章:

c - 使用 C 中的头文件替换#include

java - java语言中用二进制表示整数

c++ - 如何为非模板类​​定义模板方法?

java - Trove 库队列实现

c - 需要帮助 : Stack using a pointer in C

c - DEV C++ 头文件列表

php - SplFixedArray 是在幕后用 C/C++ 实现的吗?

c - "Detaching after fork from child process 15***"的含义?

c - 如何对十六进制字符串求和

windows-runtime - 如何在 WinRT 应用程序中正确实现热键?