我是C++的新手,面臨着下面提到的一個簡單問題。 在Visual C++ 2008,我想#定義類似#define宏中的特殊字符
#define fromThis* toThisPtr
#define fromThis toThisObj
我端起那是寫在Linux和需要移植按照以WINAPI一些代碼。我得到的錯誤是 這樣的事情。
error C2008: '*' : unexpected in macro definition
warning C4005: 'fromThis' : macro redefinition
see previous definition of 'fromThis'
我需要在預處理時重新定義fromThis和fromThis。 #define宏中的特殊字符是不允許的? 我該如何處理這段代碼?
編輯-1: 我找了可能的解決了這一點。我正在試圖將* fromThis轉換爲'toThisPtr'。一個建議的解決方案是使用typedefs。我在下面喜歡。
typedef toThisPtr fromThis*;
typedef toThisObj fromThis;
這種解決方案的錯誤,我得到
現在是這樣的:
錯誤C2143:語法錯誤:缺少「;」 '*'前 錯誤C2059:語法錯誤:';' 錯誤C2040:'iovec':'toThisObj'與'toThisPtr'之間的間接水平不同'
可以typedef是這個問題的解決方案。替換這個*變成toThisPtr的標準方式是什麼?
他希望在預處理過程中將'fromThis *'替換爲'toThisPtr'。 – 2012-07-30 06:00:54