作者compbell (唔~)
站內C_and_CPP
標題Re: [問題] 請問C/C++可截取變數名稱為char或strin …
時間Wed May 20 17:13:41 2009
※ 引述《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
1F:→ sunneo:nameperson1...4可能弄個巨集會比較一致 05/21 11:00
2F:→ sunneo:如 #define GETVARNAME(_name) name##_name 05/21 11:01
3F:→ sunneo:這麼一來原式會成為 GETVARNAME(person1) 05/21 11:02
4F:→ sunneo:不會突然出現被巨集產生的敘述句 05/21 11:02
5F:→ compbell:對耶 這樣程式碼會比較整齊一點 05/21 18:59