2 回答

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

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