在文章中讨论了以下代码,并没有认为它是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