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"一書,在此做筆記如須刪除請告知 謝謝