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

這個網誌中的熱門文章

FreeRTOS學習筆記 (二)-任務創建和刪除(xTaskCreate及vTaskDelete)

FreeRTOS學習筆記 (三)-時間管理vTaskDelay()及vTaskDelayUntil()

C語言筆記-文本處理(1) 善用 asprintf取代sprintf