isnan與宏定義來做一個可調整輸入參數的功能

#include <math.h>
#include <stdio.h>

double sum_(double in[])
{
    double sum=0;
    for( int i=0;!isnan(in[i]);i++)
        sum+=in[i];
    return sum;
}



#define sum(...) sum_((double[]){__VA_ARGS__,NAN})



int main(){
    double SUM=sum(3,4);
    printf("3+4=%g\n",SUM);
   
}

再翻以前不知道看哪本書的時候從書上整理下來的code

利用__VA_ARGS__ 讓輸入可以更有彈性

不過這個方法有個問題:
    我在幾個IDE中build,都發現isnan在不是double型態的情況下讀到NAN也不會返回正確的值


此文章內容參考"21 century c"一書,在此做筆記 

如須刪除請告知 謝謝

這個網誌中的熱門文章

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

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

MCU的硬體基礎知識(2) 電晶體的應用