C語言筆記-用__VA_ARGS__ 製作Foreach
很常看到陣列或是結構內使用複合常量,例如:
現在將它放入一個For迴圈中。循環得第一部分聲明了這個字串數組,然後開始便歷整個陣列,直到最後的NULL標記。
這樣的程式碼不易閱讀,很雜,所以用宏定易簡化:
此文章內容參考"21 century c"一書,在此做筆記
如須刪除請告知 謝謝
char **strings=(char*[]){"one","two"}
現在將它放入一個For迴圈中。循環得第一部分聲明了這個字串數組,然後開始便歷整個陣列,直到最後的NULL標記。
#include#include typedef char* string; int main(void) { string str="thresad"; for(string *list=(string[]){"111",str,"ropw",NULL}; *list; list++) printf("%s ",*list); }
這樣的程式碼不易閱讀,很雜,所以用宏定易簡化:
#include#include typedef char* string; #define Foreach_string(iterator,...) for(string *iterator=(string[]){__VA_ARGS__,NULL};*iterator;iterator++) int main(void) { string str="two"; Foreach_string(i,"one",str,"three"){ printf("%s ",*i); } }
此文章內容參考"21 century c"一書,在此做筆記
如須刪除請告知 謝謝
留言
張貼留言