一个c语言程序的执行总是从该函数的main开始,在main函数最后结束?

一个c语言程序的执行总是从该函数的main开始,在main函数最后结束?,第1张

main()函数称之为主函数,一个C程序总是从main()函数开始执行的,但是不一定在main函数最后结束。

在 main() 之后的最后一条语句结束后,程序还要运行一些代码,以正常返回 *** 作系统。main函数执行完后还执行其他语句,

有时候需要有一种与程序退出方式无关的方法来进行程序退出时的必要处理,方法就是用atexit()函数来注册程序正常终止时要被调用的函数,atexit()函数的参数是一个函数指针,函数指针指向一个没有参数也没有返回值的函数,它的原型是:

int atexit(void (*)(void))

扩展资料

main函数的使用

示例:

#include <stdlib.h>

#include <stdio.h>

void fn1(void)

void fn2(void)

int main(void)

{

atexit(fn1)

atexit(fn2)

printf("main exit ...\n")

return 0

}

void fn1()

{

printf("calling fn1()...\n")

}

void fn2()

{

printf("calling fn2()...\n")

}

参考资料来源:百度百科—main函数

一个C语言程序总是从main()主函数开始执行。main是相对来说的,如同音学理论之主调于泛音,泛音即程序中的除main之外的其他函数,迎合人们的思考方式而生成的而非必定的模式。有主有次,执行起来条清缕析,既可将程序模块化又实现了一个闭合的整体。

main 函数在程序启动中完成对具有静态存储期的非局部对象的初始化之后被调用的。它是程序在有宿主 (hosted)环境(亦即有 *** 作系统)中所指定的入口点。自立程序(启动加载器, *** 作系统内核,等等)的入口点则由实现定义的。

主函数的两个形参形式中的形参,允许从执行环境中传递任意的多字节字符串(它们通常被称为命令行参数),各个指针 argv[1] .. argv[argc-1] 指向每个这些字符串的第一个字符。argv[0] 是指向一个表示用于执行该程序自身的名字的空结尾多字节字符串(或者当执行环境不支持时,为空字符串 "")的开头字符的指针。

这些字符串是可以改动的,虽然对它们的改动并不会被传回给执行环境:比如可以用 std::strtok 来使用它们。由 argv 所指向的数组的大小至少为 argc+1,其最后一个元素 argv[argc] 保证为一个空指针。

扩展资料

main 函数的返回值类型必须是 int ,这样返回值才能传递给程序的激活者(如 *** 作系统)。

如果 main 函数的最后没有写 return 语句的话,C99 规定编译器要自动在生成的目标文件中(如 exe 文件)加入return 0,表示程序正常退出。不过,建议在main函数的最后加上return 语句,虽然没有这个必要,但这是一个好的习惯。

也就是说在最新的C语言标准中强制要求main函数的返回值类型为int,main函数的返回值是传递给 *** 作系统,让 *** 作系统判断程序的执行情况(是正常结束还是出现异常)。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/10988002.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存