__uuidof(someVar)做什么?

时间:2015-12-14 12:31:21

标签: c++ visual-c++ visual-studio-2013

我找到了一些代码,用于调用__uuidof(IMyInterface)但实际上调用__uuidof(pIMyInterface),其中pIMyInterfaceIMyInterface类型的指针。调用值而不是类型时,__uuidof如何表现?

e.g。 int x=123; __uuidof(x)相当于__uuidof(int)__uuidof(123)

2 个答案:

答案 0 :(得分:4)

__uuid是一个关键字,而不是一个函数。它不是“被调用”,它是由编译器直接解析的。当然,在识别操作数是变量时没有问题。并且它知道变量的类型,因此查找类型的__declspec(uuid)属性没有问题。

答案 1 :(得分:1)

来自MSDN

__uuidof (
   expression 
)
  

表达式可以是类型名称,指针,引用或数组   该类型,专门针对这些类型的模板,或变量   这些类型。只要编译器可以使用它,该参数就是有效的   找到附加的GUID。