C - Main 函数
C 语言中的 main() 函数
C 语言中的 main() 函数是任何程序的入口点。程序的执行始于 main() 函数。该函数旨在执行程序的主要处理过程,并清理程序分配的所有资源。C 代码中可以有任意数量的函数,但必须有一个 main() 函数。无论其在代码中的位置如何,它都是第一个执行的函数。
语法
以下是 C 语言 中 main() 函数的语法 -
int main(){ //一个或多个语句; return 0; }
语法解释
作为语法的一部分,函数的名称遵循标识符的构成规则(以字母或下划线开头,并包含字母、数字或下划线)。名称后跟一个括号。通常,main() 函数定义时不带参数,但它可能包含 argv 和 argv 参数,用于从命令行接收值。
main() 函数的有效/不同签名
main() 函数的签名(原型)如下:-
int main() { . . return 0; }
或者
int main(void){ . . return 0; }
或者
int main(int argc, char *argv[]){ . . return 0; }
main() 函数示例
以下示例演示了 main() 函数:
#include <stdio.h> int main() { // 从此处编写代码 printf("Hello World"); return 0; }
关于 main() 函数的要点
- C 程序必须有一个 main() 函数。
- main 函数不是 C 关键字。
它被归类为 用户定义函数,因为其函数体并非预先确定,而是取决于程序的处理逻辑。
按照惯例,main() 的返回类型为 int。main() 函数体中的最后一条语句返回 0,表示函数已成功执行。任何非零返回值均表示失败。 - 某些旧版 C 编译器允许您使用 void 返回类型定义 main() 函数。
- 然而,这被认为是非标准的,不推荐使用。
-
与其他函数相比,main() 函数:
- 不能声明为内联函数。
- 不能声明为静态函数。
- 不能获取其地址。
- 不能从程序中调用。
main() 在 C 语言中是如何工作的?
程序的执行从 main() 函数开始,因为它是程序的入口点,它开始执行其中编写的语句。源程序中的其他函数被定义用于执行特定任务。main 函数可以调用这些函数中的任何一个。当 main 函数调用另一个函数时,它会将执行控制权传递给该函数,并可选地传递所需数量和类型的参数,以便从被调用函数中的第一个语句开始执行。当执行 return 语句或到达函数末尾时,被调用函数将控制权返回给 main 函数。请注意,当 return 语句的返回类型为 int 时,该语句将隐式地作为最后一个语句出现。
程序通常在从 main 函数返回或到达 main 函数末尾时停止执行,但程序也可能由于各种原因在程序的其他位置终止。例如,您可能希望在检测到某些错误条件时强制终止程序。为此,您可以使用 exit 函数。
在 main() 函数中使用 exit()
C exit() 函数是一个用于终止调用进程的标准库函数。使用 exit(0) 表示没有错误,使用 exit(1) 表示程序由于遇到错误而退出。
示例
#include <stdio.h> #include <stdlib.h> int add(int, int); int main (){ int i; for ( i = 1; i<=5; i++){ if ( i == 3 ){ printf (" exiting .."); exit(0); } else printf (" Number is %d", i); } return 0; }
输出
Number is 1 Number is 2 exiting ..
使用 main() 函数的命令行参数
通常情况下,main() 函数的定义不包含任何参数。但是,您也可以使用参数定义 main() 函数,使其接受来自命令行的值。在这种用法下,main() 函数的定义如下:
语法
以下是使用命令行参数的 main() 函数的语法:
int main(int argc, char *argv[]){ . . return 0; }
参数定义
参数定义如下 -
argc - 第一个参数是一个整数,包含 argv 中后续参数的数量。argc 参数始终大于或等于 1。
argv - 第二个参数是一个以 null 结尾的字符串数组,表示程序用户输入的命令行参数。按照惯例,argv[0] 是调用程序的命令。argv[1] 是第一个命令行参数。命令行中的最后一个参数是 argv[argc - 1],argv[argc] 始终为 NULL。
示例:使用带有命令行参数的 main() 函数
请考虑以下程序以了解命令行参数。
#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() 函数的参数,这些参数可以通过命令行传递。