这些预处理器定义中的一些在WinMain函数和其他Windows库函数中。他们的目的是什么?它们如何工作?将它们写入您的实现或函数调用中是一种好习惯吗?

我的初步研究表明,它们只是设置为等效于:

#define __in
#define __out
#define __in_opt

这意味着它们在预处理器阶段不会被替换。它们只是文档方法,没有任何功能吗?

如果是这样,我可以看到以这种方式对代码进行记录的优势。对于诸如doxygen之类的东西,您需要两次写出参数名称。因此,从理论上讲,这可以帮助减少重复并保持一致性...

对于__allowed()应该如何工作,我没有任何理论。

最佳答案

它们是源代码注释语言中的SAL注释。 Microsoft工具依赖于此。 MSDN库文章is here。一个很好的例子是Code Analysis。 Pinvoke Interop助手是另一个非常不相关的工具,但是具有这些注释功能。

关于c++ - __in __out __in_opt __allowed()的目的是什么,它们如何工作?我应该在自己的代码中使用类似的构造吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4239809/

10-11 20:52
查看更多