寒江独钓

博客园 首页 新随笔 联系 订阅 管理
#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之后的代码是不被调用的

posted on 2012-10-08 15:23  X.W.LIU  阅读(167)  评论(0编辑  收藏  举报