列挙型の値を printf() で表示できますか?



列挙型の現在の値を出力できるワンライナーはありますか?


答え:


文字列として、いいえ。整数として、%d.


数えない限り:


static char* enumStrings[] = { /* filler 0's to get to the first value, */
"enum0", "enum1",
/* filler for hole in the middle: ,0 */
"enum2", "enum3", .... };
...
printf("The value is %s\n", enumStrings[thevalue]);

これは、ビット マスクの列挙などには機能しません。その時点で、ハッシュ テーブルまたはその他のより精巧なデータ構造が必要になります。