#include<stdio.h>
#include<process.h>
void add()
{
printf("**********1*********\n");
printf("**********2*********\n");
exit(1);
printf("**********3*********\n");
}
int main()
{
add();
printf("hello world!\n");
return 1;
}
输出是:
**********1*********
"*********2*********
由此我们看到了exit函数的作用。他是直接退出了进程(到底是进程还是线程,我们看一下测试):
#include<stdio.h>
#include <windows.h>
#include<process.h>
void add()
{
printf("**********1*********\n");
printf("**********2*********\n");
exit(1);
printf("**********3*********\n");
}
DWORD WINAPI ThreadProc (LPVOID lpParam)
{
printf((const char *)lpParam);
printf("\n");
printf("ThreadProc**********1*********\n");
printf("ThreadProc**********2*********\n");
exit(1);
printf("ThreadProc**********3*********\n");
return 1;
}
int main()
{
HANDLE handle=CreateThread(NULL,0,ThreadProc,(LPVOID)"xlw",0,NULL);
// while(1)
// {
// ;
// }
WaitForSingleObject(handle,INFINITE);
add();
return 1;
}
输出的依然只是
ThreadProc**********1*********
ThreadProc**********2*********
其实在crt启动函数中,就调用了exit函数。所以在 mainCRTStartup之后的代码是不被调用的