我宣佈一個枚舉這樣的:如何從與prepocessor枚舉值記錄到文件中
typedef enum message_t {
mes_no_error = 0, // no message sent
mes_internal = 1, // reserved for internals
mes_start = 2, // when main() is executed
mes_init = 3, // when inits in main() are done
mes_end = 4, // when main() returns
mes_foo,
mes_bar,
mes_joe
} message;
由於這是它跟我在PC上的微控制器,我想知道的值被用於mes_foo,mes_bar,mes_joe ....
我以爲我可以使用編譯器指令類似:
#warning "mes_block_01 = " mes_joe
後來發球,正則表達式和轉儲值到文件編譯編程的,是當米然而,海灣合作委員會告訴我:
message.h:63:2: Warnung: #warning "mes_block_01 = " mes_joe
沒有值,但只有枚舉名稱。
是否有可能從枚舉自動分配的值記錄到文件?是否可以用預處理器或編譯時顯示常量/定義的值?
沒有答案,但你爲什麼要這樣做?未指定的值將根據一些標準規則設置,我認爲'mes_foo'-> 5等,另一個問題可以回答這個問題。如果你依靠他們具有特定的價值觀,爲什麼你不把它們設置? – 2012-03-21 10:34:55
枚舉成員作爲從微控制器發送到PC的(int)消息的名稱。有一個GUI應用程序向我顯示所有消息(在GtkTreeStore中)。由於消息的編號不易於人讀取,因此我想顯示在枚舉中使用的名稱。我有一個用於uC-> PC通信的啞數據協議,並且這些消息應該靈活且易於更改。因此,我希望在編譯期間將枚舉值轉儲到某處並將它們動態地包含在GUI中。任何想法? – user1283043 2012-03-21 17:34:40
您是否正在研究X宏等http://drdobbs.com/blogs/cpp/228700289? – 2012-03-21 20:24:46