我遇到过这段代码,但我之前没见过[in]或[out]。它们是什么?
HRESULT QueryInterface([in] REFIID riid, [out] void **ppvObject) {
}
答案 0 :(得分:4)
这些是directional IDL attributes。它们表明数据传递的方向。
答案 1 :(得分:3)
根据您的问题,代码可能无法编译。话虽如此,虽然不常见,但您可能会遇到以下代码:
HRESULT QueryInterface(IN REFIID riid, OUT void **ppvObject)
编译,因为某处IN和OUT是#define' d(为空)。有时使用指针来指示参数是输入(只读)还是输出(写入)或两者都有。该指示是为了读者的利益。
答案 2 :(得分:2)
它表示正在向函数发送[in]
的值,或者在[out]
的情况下,它正在被更改,因此[out] put