2012-07-23 40 views
7

在閱讀我碰到有2個標識符「它命名爲」一類傳來代碼:一個有兩個名字的類?

class A_EXP Node 
{ 
//.. 
}; 

我無法理解這是什麼意思。有人可以幫我嗎?

+8

的'A_EXP'可能是某種形式的裝飾宏觀 - 它可能擴展到一些具體的編譯器結構(可見性控制?)在某些情況下,並沒有下其他。 – 2012-07-23 16:43:59

+0

'A_EXP'可能是'__dllspec(dllexport)' – 2012-07-23 16:45:11

+0

的定義,我猜它根據場景擴展爲'__declspec(dllexport)'或'__declspec(dllimport)'。 – tmpearce 2012-07-23 16:45:35

回答

12

A_EXP可能是一個宏,可能擴展到沒有。它也可以擴展爲__declspec或類似的聲明,它修改了編譯器如何將對象代碼作爲類發出。這種模式的一個常見的用途是:

#define A_EXP __declspec(dllexport) 
+1

「..在MSVC世界。」 – 2012-07-23 16:51:02

+1

在任何編譯器中,宏都可以擴展爲無。 – cdhowie 2012-07-23 16:51:49