gpt4 book ai didi

c++ - sal 缓冲区注释上的额外下划线 ( _ ) 是什么?

转载 作者:行者123 更新时间:2023-11-30 04:27:32 25 4
gpt4 key购买 nike

我注意到这样的陈述:

  __in HMODULE Module,
__in PSTR ImportedModuleName,
__in PSTR ImportedProcName,
__in PVOID AlternateProc,
__out_opt PVOID *OldProc

在这些语句中,我看到两个 _ _,然后是单词 ( in )。

好吧,在查看 sal.h 时,我注意到在已弃用的注释下:

// sal.h  
_in : The function will only read from the buffer. The
caller must provide the buffer and initialize it. Cannot be used with _deref.

好吧,只有一个下划线。我想知道为什么我在网上看到的所有源代码都有两个下划线(_ _ in)?就像我上面的陈述。

最佳答案

当您拥有不支持 namespace 的语言 (C) 或编译器功能(预处理器)时,这是军备竞赛的结果。或者向语言添加非标准关键字,如 __declspec__attribute__。以 _underscore 开头的标识符名称保留给实现者使用。不幸的是,不止一个人戴着那顶帽子。实现者可以是编写编译器及其 CRT 实现的程序员。或者它可以是编写核心库(如 sal.h)的程序员。

或者可能是您,您认为 header 对于项目来说是如此核心,以至于您使用下划线来避免与其余代码发生名称冲突。错误的决定,但很常见。

这会强制实现者使用多个下划线来避免名称冲突。

关于c++ - sal 缓冲区注释上的额外下划线 ( _ ) 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10862385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com