2012-07-23 21 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