C程序执行从何起始点至何终点结束?

2026-04-18 20:342阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计598个文字,预计阅读时间需要3分钟。

C程序执行从何起始点至何终点结束?

C程序的入口是main函数,通常来说,所有正常运行的程序都是从main函数的第一条语句开始,最后一条语句结束。例如:

cint main() { // 程序开始 printf(Hello!\n); return 0; // 程序结束,返回值}

C程序的入口是main函数,一般来说只要是正常运行结束的都是从main函数的第一句话开始,最后一句结束。

例如:

int main()//程序开始 { printf("Hello!\n"); return 0;//程序结束,返回值 }

但如果程序执行到中间遇到 return(main函数里的) exit(不管是main函数还是子函数中) 等也是会结束程序的。

C语言main函数的写法

main函数是C程序的入口函数,即程序的执行是从main函数开始,对其他函数的调动也是直接或间接地在main函数中被调用。那么main函数又是被谁调用呢?答案是操作系统。C语言发展至今,对main函数有多种不同的写法,下面就来探究一下各种不同的写法。注:测试环境为Ubuntu 17.10,GCC版本为7.2.0。

NO.1

main(){}

例:

#include <stdio.h> main(){ printf("Hello World\n"); }



NO.2

void main(){}

例:

#include <stdio.h> void main(){ printf("Hello World\n"); }


C程序执行从何起始点至何终点结束?

NO.3

int main(){}

例:

#include <stdio.h> int main(){ printf("Hello World\n"); return 0; }


NO.4

int main(void){}

例:

#include <stdio.h> int main(void){ printf("Hello World\n"); return 0; }



NO.5

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

例:

#include <stdio.h> int main(int argc,char *argv[]){ printf("Hello World\n"); return 0; }

NO.6

int main(int argc,char **argv){}

例:

#include <stdio.h> int main(int argc,char **argv){ printf("Hello World\n"); return 0; }

从上面的测试来看,写法1在C90标准下可以正常编译,而在C99和C11标准下会抛出一个警告(不写返回值,默认的返回值为int,也就相当于写法1和写法3等价)。写法2-6在C90、C99、C11标准下均能正常编译。在这么多写法中,到底哪一些才是main函数的标准写法?于是查阅了C标准文档对main函数的规范写法,见下图:


从标准文档中可以看出,写法4、5、6才是main函数的规范写法。写法5与写法6是等价的。那为什么又会有写法1、2、3呢?那是因为从1972年C语言被设计出来到C90标准发布这段时间,对C语言不同的实现就导致了对main函数的差异性。强烈不

本文共计598个文字,预计阅读时间需要3分钟。

C程序执行从何起始点至何终点结束?

C程序的入口是main函数,通常来说,所有正常运行的程序都是从main函数的第一条语句开始,最后一条语句结束。例如:

cint main() { // 程序开始 printf(Hello!\n); return 0; // 程序结束,返回值}

C程序的入口是main函数,一般来说只要是正常运行结束的都是从main函数的第一句话开始,最后一句结束。

例如:

int main()//程序开始 { printf("Hello!\n"); return 0;//程序结束,返回值 }

但如果程序执行到中间遇到 return(main函数里的) exit(不管是main函数还是子函数中) 等也是会结束程序的。

C语言main函数的写法

main函数是C程序的入口函数,即程序的执行是从main函数开始,对其他函数的调动也是直接或间接地在main函数中被调用。那么main函数又是被谁调用呢?答案是操作系统。C语言发展至今,对main函数有多种不同的写法,下面就来探究一下各种不同的写法。注:测试环境为Ubuntu 17.10,GCC版本为7.2.0。

NO.1

main(){}

例:

#include <stdio.h> main(){ printf("Hello World\n"); }



NO.2

void main(){}

例:

#include <stdio.h> void main(){ printf("Hello World\n"); }


C程序执行从何起始点至何终点结束?

NO.3

int main(){}

例:

#include <stdio.h> int main(){ printf("Hello World\n"); return 0; }


NO.4

int main(void){}

例:

#include <stdio.h> int main(void){ printf("Hello World\n"); return 0; }



NO.5

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

例:

#include <stdio.h> int main(int argc,char *argv[]){ printf("Hello World\n"); return 0; }

NO.6

int main(int argc,char **argv){}

例:

#include <stdio.h> int main(int argc,char **argv){ printf("Hello World\n"); return 0; }

从上面的测试来看,写法1在C90标准下可以正常编译,而在C99和C11标准下会抛出一个警告(不写返回值,默认的返回值为int,也就相当于写法1和写法3等价)。写法2-6在C90、C99、C11标准下均能正常编译。在这么多写法中,到底哪一些才是main函数的标准写法?于是查阅了C标准文档对main函数的规范写法,见下图:


从标准文档中可以看出,写法4、5、6才是main函数的规范写法。写法5与写法6是等价的。那为什么又会有写法1、2、3呢?那是因为从1972年C语言被设计出来到C90标准发布这段时间,对C语言不同的实现就导致了对main函数的差异性。强烈不