一 概述
二 类型
三 语句
四 函数
五 数据
六 内存
七 代码
附录
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
1.3 入口函数
也称作主函数,用户代码入口,有三种不同参数签名。
int main(void); int main(int argc, char *argv[]); // int main(int argc, char **argv); int main(int argc, char *argv[], char *envp[])
#include <stdio.h> #include <stdlib.h> int main (int argc, char *argv[], char *envp[]) { for (int i = 0; i < argc; i++) { puts(argv[i]); } while (*envp) { puts(*envp++); } return EXIT_SUCCESS; }
退出
任何位置都可调用 exit
函数终止进程。
返回
0
或EXIT_SUCCESS
表示正常退出。其他,比如EXIT_FAILURE
表示执行异常。如果main
没有return
,则默认表示return 0
。
进程终止前( exit
或 main return
),将执行如下操作:
- 执行
atexit
注册的清理函数。 - 关闭所有 C stream。
- 删除临时文件(
tmpfile
)。
还有一种
quick_exit
,终止进程但不清理相关资源。
_Noreturn void exit( int exit_code );
void test () { void a() { puts("a"); } void b() { puts("b"); } void c() { puts("c"); } atexit(a); // FILO: c b a atexit(b); atexit(c); exit(0); } int main (void) { test(); return EXIT_SUCCESS; }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论