- #include <stdio.h> 
-   
- // ここで定数を定義する 
- #define LIST \ 
- DEF(hoge, 1.0f), \ 
- DEF(gufa, 2.0f), \ 
- DEF(piyo, 3.0f) 
-   
- // enumの生成 
- #undef DEF 
- #define DEF(a, b) a 
- enum EnumHoge {  LIST }; 
-   
- // 構造体の生成 
- #undef DEF 
- #define DEF(a, b) {a, b, #a} 
- struct HogeHoge { 
-   EnumHoge id; 
-   float    value; 
-   const char* name; 
- } const table[] = { LIST }; 
-   
- int main(int ac, char*av []) { 
-   for (size_t n = 0; n < sizeof(table)/sizeof(HogeHoge); ++n) { 
-     printf("table[%d] = id:%d value:%f name='%s'\n", n, table[n].id, table[n].value, table[n].name); 
-   } 
- } 
-   
-   
-   
-   
				I2luY2x1ZGUgPHN0ZGlvLmg+CgovLyDjgZPjgZPjgaflrprmlbDjgpLlrprnvqnjgZnjgosKI2RlZmluZSBMSVNUIFwKREVGKGhvZ2UsIDEuMGYpLCBcCkRFRihndWZhLCAyLjBmKSwgXApERUYocGl5bywgMy4wZikKCi8vIGVudW3jga7nlJ/miJAKI3VuZGVmIERFRgojZGVmaW5lIERFRihhLCBiKSBhCmVudW0gRW51bUhvZ2UgeyAgTElTVCB9OwoKLy8g5qeL6YCg5L2T44Gu55Sf5oiQCiN1bmRlZiBERUYKI2RlZmluZSBERUYoYSwgYikge2EsIGIsICNhfQpzdHJ1Y3QgSG9nZUhvZ2UgewogIEVudW1Ib2dlIGlkOwogIGZsb2F0ICAgIHZhbHVlOwogIGNvbnN0IGNoYXIqIG5hbWU7Cn0gY29uc3QgdGFibGVbXSA9IHsgTElTVCB9OwoKaW50IG1haW4oaW50IGFjLCBjaGFyKmF2IFtdKSB7CiAgZm9yIChzaXplX3QgbiA9IDA7IG4gPCBzaXplb2YodGFibGUpL3NpemVvZihIb2dlSG9nZSk7ICsrbikgewogICAgcHJpbnRmKCJ0YWJsZVslZF0gPSBpZDolZCB2YWx1ZTolZiBuYW1lPSclcydcbiIsIG4sIHRhYmxlW25dLmlkLCB0YWJsZVtuXS52YWx1ZSwgdGFibGVbbl0ubmFtZSk7CiAgfQp9CgoKCg==