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版)"中的程式碼,在此做筆記 紀錄
如須刪除請告知 謝謝