【问题标题】:5.1.1.1 Program structure in C995.1.1.1 C99 中的程序结构
【发布时间】:2020-09-21 14:08:29
【问题描述】:

C 程序不需要同时翻译。程序的文本被保留 以本国际标准中称为源文件(或预处理文件)的单位。一种 源文件以及通过预处理包含的所有头文件和源文件 指令#include 被称为预处理翻译单元。预处理后,一个 预处理翻译单元称为翻译单元。 以前翻译过的翻译 单元可以单独保存,也可以保存在库中。 程序通过(例如)调用具有外部标识符的函数进行通信 链接,对其标识符具有外部链接的对象的操作,或操作 的数据文件。翻译单元可以单独翻译,然后链接到 生成一个可执行程序。

我被粗体字所困扰。我认为在考虑整个子句的流程时,这句话似乎不合适(这个想法一定是错误的,因为它是 ANSI 的文档)。这可能是由于我的英语不好或缺乏计算机科学知识造成的。我google了几次,搜索了所有的单词和成语,但还是不知道。

第一季度。 previously translated 翻译单元可以单独保存或保存在库中。 这句话与
previously preprocessed 翻译单元可以单独保存或保存在库中意思相同 strong>?
也就是说,句子和前一个句子之间的translation units这个词是否完全一样?

Q2. individually 是什么意思? ~ may be preserved individually. 它保存在哪里??

如果我的问题不清楚或难以理解,您可以给我另一种解释来说明句子所指的内容,而不是回答我的问题。感谢您阅读我的问题。

【问题讨论】:

    标签: c99


    【解决方案1】:

    我相信这是由于您指出的英语水平不佳。我会尽量给出我的解释,我自己不是以英语为母语的人。

    您编写代码。引用的指令指出代码存储在称为“源文件”或“预处理文件”的原子实体中。

    然后您将此代码编译成可执行文件或其他二进制形式。您以人类可读格式编写的“预处理文件”现在转换为人类无法阅读的二进制文件。

    假设您的项目非常大,并且有多个源代码文件。您可能已经完成了项目的一部分,例如负责串行端口连接的项目。你编译它,现在你有了二进制文件。您可以保留这些二进制文件并将它们用作,然后通过链接将它们导入项目的其余部分。

    链接是在源代码中完成的,通过导入现有的东西,并在编译时创建机器级链接。您无需重新编译串行端口连接,因为您获取了先前编译的库并保留它(供以后使用)。

    二进制文件是一个文件,可能类似于library.olibrary.dll 等。

    【讨论】:

    • 你给了我很好的视野和我的问题的相关内容!重点是动词preserve,意思是存放编译好的东西。顺便说一下,你能说一下关于编译器链接的细节吗?编译器遇到头文件,然后是由 首先嵌套的预处理指令。但是里面只有函数原型,没有函数定义。那么 stdio.h 是否有命令行来使编译器链接到库文件?这个额外的问题与我原来的问题无关,但我想你可以回答我。你的回答太有用了!
    • 如你所说,与原问题无关。我鼓励您为此提出一个单独的问题。一般来说,是的:链接是为源文件(例如 stdio.h)提供的,但如果它们是二进制文件(例如 stdio.dll),则以不同的方式导入。由于搜索路径,编译器架构等原因,这太长了,无法在评论中详细介绍...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-02
    • 2023-03-12
    相关资源
    最近更新 更多