Hec*_*tor 17 c++ windows c++11
在文件中C:\Program Files (x86)\Windows Kits\8.1\Include\um\OleAuto.h,我发现以下代码,我不知道如何解释:
WINOLEAUTAPI SafeArrayAccessData(_In_ SAFEARRAY * psa,
_Outptr_result_buffer_(_Inexpressible_(psa->cbElements *
product(psa->rgsabound[0..psa->cDims-1]->cElements)))
void HUGEP** ppvData);
Run Code Online (Sandbox Code Playgroud)
请注意方括号内的双倍期.这是C++中的新运算符吗?
Doo*_*ins 19
它似乎是一个SAL注释,用于告诉静态分析器缓冲区的大小太复杂,无法使用普通注释表示:
https://msdn.microsoft.com/en-us/library/jj159527.aspx
它不必包含有效的语法,但它包含的内容可能是为了简洁地向人类读者说明如何计算缓冲区的大小.
如果我自己解释它,我猜它意味着以下代码会产生什么:
DWORD CalculateInexpressibleSafeArrayDataSize(SAFEARRAY * psa)
{
DWORD cbSize = psa->cbElements;
for (int i = 0; i < psa->cDims; i++) // product()
cbSize *= psa->rgsabound[i]->cElements;
return cbSize;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1370 次 |
| 最近记录: |