日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

C語言return,?exit,?abort的區別_C 語言

作者:微小冷? ? 更新時間: 2022-03-22 編程語言

一般情況下,在C語言中退出一個程序用return,如果在main函數中,return在清理局部對象之后,會調用exit函數。

return相比,exit并不會銷毀局部對象,而是會銷毀所有靜態與全局對象、清空緩沖區,關閉IO通道。終止前則會調用atexit()所定義的函數。

atexit也在stdlib.h中,其聲明式為

int atexit(void (*func)(void))

當程序中止時,就會調用函數指針func

//atexit.c
#include <stdio.h>
#include <stdlib.h>

void funcA (){
? ?printf("call from atexit\n");
}

int main (){
? ?atexit(funcA); ? //將funcA注冊為中止函數
? ?printf("exiting...\n");
? ?return 0;
}

測試結果如下:

>gcc atexit.c
>a.exe
exiting...
call from atexit

如果希望什么都不做就退出程序,可以使用abort(),將abort();插入到return 0前面,則其輸出結果如下,并不會調用funcA。

>a.exe
exiting...

原文鏈接:https://blog.csdn.net/m0_37816922/article/details/122054084

欄目分類
最近更新