2 回答

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊
參考一下:
就是把命名空間聲明與宏定義組合起來(lái)用
namespace nsdebug //名字空間nsdebug是在別的文件里定義的
{
int GetStringWidth(char* s);
int GetCellValue(int x,int y);
}
#define GetStringWidth nsdebug::GetStringWidth
#define GetCellValue nsdebug::GetCellValue
把這些個(gè)名字空間都加近來(lái),再一一定義一個(gè)宏,做成一個(gè)新的頭文件。這樣的話(huà)不必修改原來(lái)代碼的任何內(nèi)容。

TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個(gè)贊
我也曾遇到過(guò)這中問(wèn)題,曾經(jīng)也找到了解決方案,但是覺(jué)得不完美后來(lái)就不用了,不過(guò)可以給你參考一下:
就是把命名空間聲明與宏定義組合起來(lái)用
namespace nsdebug //名字空間nsdebug是在別的文件里定義的
{
int GetStringWidth(char* s);
int GetCellValue(int x,int y);
}
#define GetStringWidth nsdebug::GetStringWidth
#define GetCellValue nsdebug::GetCellValue
把這些個(gè)名字空間都加近來(lái),再一一定義一個(gè)宏,做成一個(gè)新的頭文件。這樣的話(huà)不必修改原來(lái)代碼的任何內(nèi)容。
不過(guò)后來(lái)我覺(jué)得用宏還是不穩(wěn)心,東西多了次早會(huì)遇到宏陷阱,后來(lái)就廢棄了這種方法。
- 2 回答
- 0 關(guān)注
- 896 瀏覽
添加回答
舉報(bào)