用C编写的程序开头的“ main()”是什么意思?

时间:2019-07-10 23:24:09

标签: c

我只想全面学习基础知识和一些简单的代码。

我能够在以下位置找到简短说明 https://www.dummies.com/programming/c/looking-at-the-c-language/,但我认为我并不能完全理解它。

1 个答案:

答案 0 :(得分:1)

这是您程序的起点。 Per 5.1.2.2.1 Program startup of the C standard

  

在程序启动时调用的函数名为main。的   实现没有为此函数声明任何原型。应该是   定义为带有返回类型int且没有参数:

     int main(void) { /* ... */ }
     

或具有两个参数(此处称为argcargv,   可以使用名称,因为它们是它们所在的函数的本地名称   声明):

     int main(int argc, char *argv[]) { /* ... */ }
     

或同等学历;或以其他实现定义的方式。

     

如果已声明,则应遵循main函数的参数   以下约束条件:

     
      
  • argc的值应为非负数。
  •   
  • argv[argc]应该是空指针。
  •   
  • 如果argc的值大于零,则数组成员argv[0]argv[argc-1](含)应包含指向以下内容的指针   字符串,由主机赋予实现定义的值   程序启动之前的环境。目的是供应给   在程序启动之前从其他地方确定的程序信息   在托管环境中。如果主机环境不具备   提供带有大写和小写字母的字符串,   实现应确保在以下位置接收字符串   小写。
  •   
  • 如果argc的值大于零,则argv[0]指向的字符串表示程序名称; argv[0][0]为   如果主机不提供程序名称,则为空字符   环境。如果argc的值大于1,则字符串   argv[1]argv[argc-1]所指向的代表程序   参数。
  •   
  • 参数argcargv以及argv数组所指向的字符串应可由程序修改,并保留它们   在程序启动和程序终止之间最后存储的值。
  •