c标准函数库--->assert.h(三)

2013-07-22 18:00:57 · 作者: · 浏览: 570

 

  [cpp]

  //定义NDEBUG

  #include<stdio.h>

  #include<stdlib.h>

  #define NDEBUG

  #include<assert.h>

  int main()

  {

  printf("1 ok hello \n");

  assert(1==4);;

  printf("2 ok exit \n");

  return 0;

  }

  [cpp]

  结果:

  ********************************

  1 ok hello

  2 ok exit

  ****************************************

  [cpp]

  原理:

  #define assert(test) if(!(test))\

  fprintf(stderr,"the failed : %s file %s ,line %i\n",#test, __FILE__,__LINE__);\

  abort();

  [cpp]

  模拟:

  #include<stdio.h>

  #include<stdlib.h>

  //#define NDEBUG

  //#include<assert.h>

  #define Assert(test) if(!(test)) fprintf(stderr,"Assertion failed: %s, file %s, line %i\n", #test, __FILE__, __LINE__);abort()

  int main()

  {

  printf("1 ok hello \n");

  Assert(1==4);

  printf("2 ok exit \n");

  return 0;

  }

  [cpp]

  结果:

  **************************************

  1 ok hello

  Assertion failed: 1==4, file assert_h_ex.c, line 9

  已放弃