MSVC中的“interface”关键字是什么?

我正在浏览Windows 8.1 SDK和UnknownBase.h中的内容

typedef interface IUnknown IUnknown; 

我之前从未见过这个interface关键字。 请注意,这绝对是一个.h标头,由cl.exe处理。 它不是IDL文件,并且它不由midl.exe处理。

我在网上找到了这个: http : //msdn.microsoft.com/en-us/library/50h7kwtb.aspx

__interfaceinterface

谁能在这里提醒我?

Microsoft有一些特定于编译器的扩展,例如您链接的扩展,但interface不应该是本机C ++编译器特定的关键字,而是替换某些东西的定义(在BaseTyps.h中,它曾被定义如下)

 # define interface struct 

链接在这里

如果你想validation这个为这样的定义做一个grep ,你应该找到类似的东西。


参考文献: http : //social.msdn.microsoft.com/forums/vstudio/en-US/06bf1dea-1d20-4ec3-b9a1-3d673d7fcd8d/what-is-the-interface-keyword-in-native-c