是否可以通過包含#define名稱的字符串來獲取宏的值?或者在編譯代碼後不可能通過其名稱訪問宏?如何使用包含宏名稱的字符串獲取宏的值?
要指出,我所追求的:
#define NAME "VALUE"
char string[5];
// I want the content of string to be changeable to access any define
strncpy(string, "NAME", 4);
fprintf(stderr, "%s\n", string);
我想要的輸出:VALUE
編輯 由於MOHAMED的答覆,我發現這個解決方案:
#define NAME "VALUE"
char string[5];
strncpy(string, "NAME", 4);
if(strncmp(string, "NAME", 4) == 0) {
fprintf(stderr, "%s\n", NAME);
}
宏的完全文本替換 – aaronman
當然操作:'strncpy()函數(字符串,NAME,4);' – 2013-07-27 19:18:13
@ H2CO3不是很確定:弦只有5個字符室和複印只有4個結果 「VALU」 ... – Jens