C 标识符和主函数

标签 c

1.为什么C main()函数中的"main"标识符? 2.如果main是一个标识符,那么程序如何仅从ma​​in开始执行。

最佳答案

main 是一个函数,几乎与其他函数完全相同。它由标识符命名,被调用,接收一些参数,执行某些操作,返回一个值。这几乎就是函数的定义。 C 的设计者追求简单性,因此让程序的入口点成为一个普通函数是非常有意义的。

如果您是一名汇编语言程序员,您可能知道程序的入口点只是一个地址,而不是一个完整的函数。但这是汇编语言的说法:C 是一种高级语言。

正如其他人所解释的,在某处有一些低级启动代码(通常用汇编程序编写),它们具有程序的实际入口点,当程序启动时跳转到。该启动代码是实际调用您的 main 函数的代码。

我说过main是一个普通函数,而且大多数情况下都是这样,但它具有其他函数不共享的三个特殊属性:

  1. 这几乎是您编写的唯一一个您无需选择自己的名称、返回值和参数类型的函数——这些都是为您选择的(或者,如果您想认为那样的话,是语言强加给你的。例如,返回类型必须int,因为语言是这样规定的。您不能仅仅因为您愿意就将其设置为其他类型(当然,很多程序员将其设置为空,并且经常侥幸逃脱)。

    <
  2. main 实际上有两组可以接受的有效参数:零或两个,即 intchar ** (传统上称为 argcargv)。

  3. 作为一个非常的特殊异常(exception),即使 main 返回 int,您也可以不拥有 return 语句,编译器基本上会为您插入一个,使 main() 默认返回 0。

关于C 标识符和主函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50506880/

相关文章:

c++ - feof() 如何真正知道何时到达文件末尾?

c - 多线程处理一系列方程式

c - 如何在不使用 vsscanf() 的情况下为 C sscanf() 实现包装函数

c - 字符串比较失败

c - C 中的浅拷贝

c - 在 c 中的 fork 进程上生成随机数

c - C 中不同类型的外部变量

c - 写入一个大文件或多个小文件

c - "/dev/ttyUSB0"在 Windows 中等效

c - 在 arm-none-eabi-gcc 中使用显式字节顺序进行复制的优化