2012/08/05

C/C++ assert

assert在C語言裡面算是很特別的函數
其主要用意在幫Program debug在使用的方法,類似Java的Log類別一樣的方法
以下是加入前跟加入後的程式碼以及呈現的畫面:

加入assert前:



/* assert example */
#include <stdio.h>
#include <assert.h>

void print_number(int* myInt) {
  printf ("%d\n",*myInt);
}

int main ()
{
  int a=10;
  int * b = NULL;
  int * c = NULL;

  b=&a;

  print_number (b);
  print_number (c);

  return 0;
}



加入assert後:

/* assert example */
#include <stdio.h>
#include <assert.h>

void print_number(int* myInt) {
  assert (myInt!=NULL);
  printf ("%d\n",*myInt);
}

int main ()
{
  int a=10;
  int * b = NULL;
  int * c = NULL;

  b=&a;

  print_number (b);
  print_number (c);

  return 0;
}




就此看得出來其差異,以上程式碼皆參考自官方sample
參考文章:
http://www.cplusplus.com/reference/clibrary/cassert/assert/
http://zh.wikipedia.org/wiki/Assert.h