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