C語言筆記 -預處理器的技巧(2)
前偏:C語言筆記 -預處理器的技巧(1)
如果想要將兩個非字串連在一起,可以用兩個#:##
輸出結果為12
---------------------------------------------------
也可以這樣使用
此程式碼皆為"C成續設計新思維(第2版)"中的程式碼,在此做筆記 紀錄
如須刪除請告知 謝謝
如果想要將兩個非字串連在一起,可以用兩個#:##
#include <stdio.h>
#include <math.h>
#define Setup_list(name,...)                                                            \
        double *name  ## _list=(double[]){__VA_ARGS__,NAN}; \
        int name ##_len=0;                                                                 \
        for(name##_len=0;!isnan(name ## _list[name ##_len]);)       \
                    name ## _len ++;
int main()
{
    Setup_list(items,1,2,3,6);
    double sum=0;
    for(double *ptr=items_list;!isnan(*ptr);ptr++)
        sum+=*ptr;
    printf("sum:%g\n",sum);
}
輸出結果為12
---------------------------------------------------
也可以這樣使用
#define Length(in) in ## _len
int main()
{
     int sum=0;
     Setup_list(next_set,-1,2,4.5,0.1);
     for(int i=0;i<Length(next_set);i++);
        sum+=next_set_list[i];
     printf("sum:%g\n",sum);
}
此程式碼皆為"C成續設計新思維(第2版)"中的程式碼,在此做筆記 紀錄
如須刪除請告知 謝謝