ODBC API 签名中参数的__IN__和__OUT__限定符的重要性
Significance of __IN__ and __OUT__ qualifiers for parameters in ODBC API's Signature
通过ODBC头文件sql.h
的Microsoft实现,几乎所有API声明的参数都是用__IN__
或__OUT__
限定的。
示例
SQLRETURN SQL_API SQLRowCount(_In_ SQLHSTMT StatementHandle,
_Out_ SQLLEN* RowCount);
据我所知,这种用法通常用于确定传输优化的方向,特别是在COM世界中,数据需要进行封送和联合封送,但在ODBC上下文中,这种用法似乎很奇怪。
从ODBC的角度来看,这些限定符的意义是什么?
语法上,可能根本没有意义。他们可能都是#define
,在某个地方什么都不是。它们只是为了帮助API在与文档隔离的情况下更具可读性——只需标记哪些参数是函数的输入,哪些参数是输出。
相关文章:
- IN, OUT, INOUT Parameters
- 即使使用调试编译标志,表达式也是"optimized out"
- C++双重释放或损坏(out)
- 将 out/in out 参数与 if/switch 的 init 语句一起使用
- 在命令行上将输入显示到数组中时如何删除 ./a.out?
- 为什么我的向量::擦除调用会抛出"vector subscript out of range"?
- 解决方案在第 25 行执行错误'out of bounds'
- C++ 向量加减抛出"expression: vector subscript out of range."错误
- 对函数的 out 字符串参数使用 swap 与赋值
- C++类 公共和私人领域的重要性
- 运行编译的 a.out 后出现分段错误(核心转储)错误
- 在 Metal 着色器代码中,如何定义函数的 in/out 参数变量?
- 赋值运算符上的双重释放或损坏(out)
- "in"和"out"在参数方向上是什么意思?
- 从 MSVC14 切换到 MSVC16 会导致"compiler is out of heap space (C1060)"错误
- -bash:/a.out:无法执行二进制文件:Exec格式错误
- 我想了解为什么在这个例子中使用引用函数?或者引用在c++函数中的重要性
- 庞大的初始化列表,如何修复"fatal error C1060: compiler is out of heap space"
- C++ 调用析构函数后动态模板队列"double free or corruption (out)"
- 如何解决'vector subscript out of range'错误?