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

还没有任何评论哟~
