我有一個問題,我需要將結構變量的名稱轉換爲char
。例如:將結構轉換爲字符
struct CARINFO a;
當我的函數需要的CARINFO a
的說法,我想在功能同時使用a
和"a"
。
任何人都可以幫忙嗎?
我有一個問題,我需要將結構變量的名稱轉換爲char
。例如:將結構轉換爲字符
struct CARINFO a;
當我的函數需要的CARINFO a
的說法,我想在功能同時使用a
和"a"
。
任何人都可以幫忙嗎?
您可以在C中做的最好的事情是使用單個宏來定義字符串和變量。沒有運行時檢查可以讓您重新發現變量的名稱。
你可以通過將函數變成一個宏,並使用#運算符(字符串化)來獲取hte參數的名稱。
例如:
#define MYFUNC(x) \
do { real_func(x); printf("parameter name: " #x "\n"); } while (0)
您可以使用宏來通過這兩個指針,你的結構和它的名字到實際功能。
struct bar {
// blah
};
void actual_foo(struct bar *b, char *bname) {
// whatever
}
#define foo(bar) actual_foo(&(bar), #bar)
int main() {
struct bar b;
foo(b);
}
我*想*你在談論C語言,你能證實這一點嗎? –
如果您說要達到目的的目的可能會提供更好的答案,但簡短答案是否定的,您不能這樣做。 –
是的,這是在c。 這就是汽車信息結構的樣子。 { \t/*汽車正面的位置。由於所有車輛都假設爲 \t要面向北或西,該位置代表 \t該車的西北段*/ \t LOCATION front; \t/*汽車的方向*/ \t定位方向; \t/*車的長度*/ \t int length; } CARINFO; 不幸的是我無法改變它。 – pseudoabdul