在文章中討論了以下代碼,並沒有認爲它是char *數組的標準C/C++語法。作爲測試,Visual C++(Visual Studio 2005)和C++ Builder Rad XE都拒絕第二行。C/C++ enum和char *數組
沒有使用#define
s,任何人都有任何技巧/技巧保持enum
s和字符串數組排序的同步,而不訴諸STL?
更多的好奇心問題。
enum TCOLOR { RED, GREEN, BLUE };
char *TNCOLOR[] = { [RED]="Red", [GREEN]="Green", [BLUE]="Blue" };
順便說一句,這來自於文章是很老,我相信這可能在GCC的工作,但還沒有測試。
爲什麼不使用STL? – Kris 2011-02-08 15:14:34
2個原因:1. STL導致代碼膨脹,2.我工作在STL通常不可用的嵌入式系統上。我的很多代碼文件都是純C(而不是C++),它必須在嵌入式平臺上編譯。 – Eric 2011-04-11 14:10:07