C語言筆記 -用宏定義做一個可返回的斷言
做一個斷言失敗會回傳的宏定義
如果沒有回傳值的函數可以這樣做:
如須刪除請告知 謝謝
#include <stdio.h> #include <stdlib.h> #define Claim(assertion,returnval) if(!(assertion)) \ {fprintf(stderr,#assertion" failed to be true. \ Return " # returnval"\n");return returnval;} int test(int x,int y){ Claim(x==y,-1); return 0; }
如果沒有回傳值的函數可以這樣做:
void doSomethings(int x,int y)
{
Claim(x==y, );
return;
}
此文章內容參考"21 century c"一書,在此做筆記如須刪除請告知 謝謝