C main函数是可选的,你可以在它之外编写代码吗?

Nat*_*han 1 c syntax program-entry-point function

通常,当我在GitHub上查看源代码时,main函数被省略或者代码外面有代码.我所做的教程告诉我 - 我不能做这些事情.有什么我想念的吗?

Eri*_*hil 5

托管在操作系统中的正常完整C程序必须具有main例程.

GitHub上的项目可能仅仅是程序的一部分,例如旨在用于其他程序的例程集合.(这样的集合通常称为库.)如果源代码本身并不是一个完整的程序,那么它就不需要有main例程.一个main程序将通过谁使用程序的集合在自己的节目有人在以后添加.

C源代码也可以编译并与其他编程语言编写的源代码结合使用.C标准未指定此行为,因此它特定于执行此操作时使用的各种开发人员工具.这样的混合程序必须有一些主程序,但它可能被称为其他东西main.尽管如此,main作为主要例程的名称已经变得非常流行,因此它被频繁使用.

C源代码可用于特殊软件,如操作系统内核.与托管环境相比,C标准描述了独立环境.在独立环境中,许多东西都是针对特定系统定制的,包括如何设置程序的起始地址.在这种情况下,可以调用主入口点start而不是main例如,并且可以在特定于硬件的某些特殊数据结构中将该入口点的地址传送到硬件.

关于函数之外的代码,可以是初始化表达式.(在函数之外的初始化中可以使用哪些表达式有严格的限制.你不能在这些表达式中编写通用的C代码.)你必须显示具体的例子才能得到答案.