Re: [問題] 請問C/C++可截取變數名稱為char或strin …

看板C_and_CPP (C/C++)作者 (唔~)時間16年前 (2009/05/20 17:13), 編輯推噓0(005)
留言5則, 2人參與, 最新討論串1/1
※ 引述《Carbontube (碳管)》之銘言: : 好比 int person; : 想開用一個 char *name 讓name的內容值為'p' 'e' 'r' 's' 'o' 'n' : 請問有無簡單的做法哩??? : 不然還要一個一個自己打 真的很蠢 : 謝謝 #include <stdio.h> #define DEFVAR(_type,_name) _type _name;\ char *name##_name = #_name; int main(int argc, char *argv[]) { DEFVAR(int, person1) DEFVAR(char, person2) DEFVAR(float, person3) DEFVAR(double, person4) printf("person1 = %s\n",nameperson1); printf("person2 = %s\n",nameperson2); printf("person3 = %s\n",nameperson3); printf("person4 = %s\n",nameperson4); return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.103.41

05/21 11:00, , 1F
nameperson1...4可能弄個巨集會比較一致
05/21 11:00, 1F

05/21 11:01, , 2F
如 #define GETVARNAME(_name) name##_name
05/21 11:01, 2F

05/21 11:02, , 3F
這麼一來原式會成為 GETVARNAME(person1)
05/21 11:02, 3F

05/21 11:02, , 4F
不會突然出現被巨集產生的敘述句
05/21 11:02, 4F

05/21 18:59, , 5F
對耶 這樣程式碼會比較整齊一點
05/21 18:59, 5F
文章代碼(AID): #1A4yd6-B (C_and_CPP)
文章代碼(AID): #1A4yd6-B (C_and_CPP)