【问题标题】:C functions definitionC 函数定义
【发布时间】:2021-06-15 05:40:47
【问题描述】:

最近我在学习《The C Programming Language》这本书,在第一章中我遇到了这一段

函数定义可以以任何顺序出现,并且可以在一个或多个源文件中出现, 尽管不能在文件之间拆分任何功能。如果出现源程序 在几个文件中,你可能不得不说更多来编译和加载它而不是全部 出现在一个中,但这是操作系统问题,而不是语言属性。

我已经理解程序中的功能顺序无关紧要的部分。谁能解释其余的?

【问题讨论】:

  • 只是表示可以单独编译。您可以将程序拆分为多个源文件(语言措辞是编译单元)。这对于大型程序非常有用,并且允许重用代码并选择性地将部分存储在易于使用的库中(link)到其他程序中。
  • 请注意,本书是在函数原型声明前时代写成的。尝试将其更新到 1989 年的 C 版本可能需要更多的努力。因此,您可能会发现许多非常过时的语句和编码风格。在 2021 年学习如何编程时,我不建议阅读 40 年的书籍。
  • 当询问书中的文字或引用书中的文字时,请包括书目引文,至少包括书名、作者、版本号和书内位置信息,例如页码或章节、章节和/或条款编号,或两者兼而有之。这使其他人能够查找该段落并查看其上下文。

标签: c function


【解决方案1】:

C 标准仅规定符合标准的实现应允许单独编译(多个文件)。但是,具体如何编译和链接超出了语言规范的范围,取决于实际的实现。例如,MSVC 可能需要来自 GCC 的非常不同的参数,而两者都是符合要求的实现。

【讨论】:

    【解决方案2】:

    快速回答是 C 标准不关心编译器和链接器的细节。

    因此,C 标准并不关心您如何加载库或如何使用 Makefile 或使用 C 编写非平凡程序的任何其他细节。

    这主要是因为 C 经常与自定义工具链一起用于嵌入式系统编程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-05
      • 2019-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多