Cprogramming 简明教程

C - Main Function

main() Function in C

C 中的 main() 函数是任何程序的入口点。程序执行从 main() function 开始。它设计用于执行程序的主处理,并清理程序分配的任何资源。在 C 代码中,可能有任意数量的函数,但它必须有一个 main() function 。不考虑它在代码中的位置,它是第一个要执行的函数。

Syntax

以下是 C languagemain() 函数的语法 −

int main(){
   //one or more statements;
   return 0;
}

Syntax Explained

作为其语法的一部分,函数具有遵循形成标识符规则(以字母或下划线开头,并带有字母、数字或下划线)的名称。名称后面是括号。通常,main() 函数不带任何参数定义,但它可能具有 argv 和 argv 参数来从命令行接收值。

Valid/Different Signatures of main() Function

main() 函数的签名(原型)是 −

int main() {
   . .
   return 0;
}

int main(void){
   . .
   return 0;
}

int main(int argc, char *argv[]){
   . .
   return 0;
}

Example of main() Function

以下示例演示了 main() 函数:

#include <stdio.h>

int main() {
  // Write code from here
  printf("Hello World");
  return 0;
}

Important Points about main() Function

  1. C 程序必须具有 main() 函数。

  2. 主函数不是 C keyword 。它被分类为 user-defined function ,因为它没有预先设定实体,它取决于程序的处理逻辑。约定上,int 是 main() 的返回类型。main() 的函数实体中的最后一个语句返回 0,表示函数已成功执行。任何非零返回值表明失败。

  3. 一些旧的 C 编译器允许使用 void 返回类型定义 main() 函数。

  4. 不过,这被认为是非标准的,不推荐这样做。

  5. 与其他函数相比,main() 函数:不能声明成 inline。不能声明成 static。不能取其地址。不能从程序中调用它。

How does main() Works in C?

程序执行从 main() 函数开始,因为它是程序的入口点,它会开始执行其内部编写的语句。源程序中的其他函数被定义用于执行确定的任务。main 函数可以调用其中任何一个函数。当 main 调用其他函数时,它会将执行控制传递给函数,选择性地传递必须数量和类型的参数,从而执行开始于被调用函数的第一个语句。当执行 return 语句或函数结束时,被调用函数将控制权返回给 main。注意,当其返回类型为 int 时,return 语句会作为最后一条语句隐式出现。

程序通常会在从 main 返回或到达其末尾时停止执行,尽管它可能由于种种原因在程序的其他部分终止。例如,您可能想要在检测到某些错误条件时强制终止程序。为此,可以使用 exit 函数。

Use of exit() in main() Function

C exit() function 是一个用于终止调用进程的标准库函数。使用 exit(0) 表示没有错误,使用 exit(1) 表示程序因遇到的错误而退出。

Example

#include <stdio.h>
#include <stdlib.h>

int add(int, int);

int main (){
   int i;
   for ( i = 1; i<=5; i++){

      if ( i == 3 ){
         printf  (" \n exiting ..");
         exit(0);
      }
      else

      printf  (" \n Number is %d", i);
   }

   return 0;
}
Number is 1
Number is 2
exiting ..

Command-line Arguments with main()

通常, main() 函数被定义为没有参数。不过,可以通过参数定义 main() 来使其接受来自命令行中的值。在此类用法中,main() 函数定义如下所述:

Syntax

以下是用 command-line arguments 的 main() 函数的语法:

int main(int argc, char *argv[]){
   . .
   return 0;
}

Argument Definitions

参数定义如下:

*argc * - 第一个参数是整数,包含 argv 中紧随其后的参数计数。argc 参数始终大于或等于 1。

argv - 第二个参数是表示程序用户输入的命令行参数的以 null 结尾的字符串数组。约定上,argv[0] 是用来调用程序的命令。argv[1] 是第一个命令行参数。来自命令行的最后一个参数是 argv[argc - 1],而 argv[argc] 始终为 NULL。

Example: Using main() Function with Command-line Arguments

考虑以下程序以理解命令行参数。

#include <stdio.h>
#include <stdlib.h>

int add(int, int);

int main (int argc, char *argv[]){
   int x, y, z;

   if (argc<3){
      printf("insufficient arguments");
   }
   else{
      x = atoi(argv[1]);
      y = atoi(argv[2]);
      z = x+y;
      printf("addition : %d", z);
   }
   return 0;
}

只需编译并构建程序为 test.c,不要在您进行编辑和编译的 IDE 中运行。转到命令提示符并按如下方式运行程序:

C:\Users\mlath>test 10 20
addition : 30

在本章中,我们学习了在 C 中定义 main() 函数的重要性及语法。任何 C 程序都必须有 main() 函数。按照惯例,它应该返回 0 以表示执行成功。您还可以为 main() 函数定义参数,它们可以从命令行中传递。