Advertisement

C语言 exit()这样骚的操作你知道几个?

阅读量:

前言

本文主要向大家讲解C语言的一些冷门技巧,在main函数前后分别设置想要执行的功能,并掌握多种程序退出的方法。

main函数是最先执行和最后执行的函数吗?

C语言构造和析构函数

通常在编写C程序时我们是从main函数开始处理代码因此或许没有人在乎这个细节问题但实际上main函数并不是程序运行的第一步也不是最后一步。

#include <stdio.h>
void __attribute__((constructor)) init1() {
printf("before main funciton\n");
}
int main() {
printf("this is main funciton\n");
}

我们编译上面的代码然后执行,输出结果如下图所示:

➜ code git:(main) ./init.out
before main funciton
this is main funciton

可以看出main函数并非第一个被调用的功能块,请问程序首次运行时会先执行哪一个功能块呢?其实非常简单只需要查看整个程序的调用栈即可确定。

![](https://cdl.i

全部评论 (0)

还没有任何评论哟~