代码如下:
void f1(void){
printf("Running f1.\n");
}
void f2(void){
printf("Running f2.\n");
}
int main(){
printf("Registering f1 and f2: ");
if(atexit(f1)||atexit(f2)){
printf("failed.\n");
}
else{
printf("done.\n");
exit(0);
}
}
运行结果如下:
Registering f1 and f2: done.
Running f2.
Running f1.
我的疑问是:
当程序运行到if时,如何知道atexit函数的返回值,我看关于atexit函数的说明都是在程序正常退出时调用,可是现在在if判断时程序还没退出,程序怎么进行判断的呢?
atexit只是注册了一个函数,它返回注册是否成功。注册的函数要等到main函数退出后才会运行。