警告 C33005

变量“var”是作为 _In__InOut_ 参数提供的,但未初始化(表达式“expr”

备注

当未初始化的 VARIANT 作为仅输入或输入/输出参数传递给函数时,将触发此警告。 例如,不带 _Out_ SAL 注释的按应用传递参数。

代码分析名称:VARIANTCLEAR_UNINITFUNCPARAM

示例

以下示例代码会导致警告 C33005:

#include <Windows.h>

void bar(VARIANT* v);   // v is assumed to be input/output

void foo()
{
    VARIANT v;
    bar(&v);            // C33005
    // ......
    VariantClear(&v);   // OK, assumed to be initialized by bar
}

要更正这些警告,请先初始化 VARIANT,然后再将其作为仅输入或输入/输出传递给函数。

#include <Windows.h>

void bar(VARIANT* v);   // v is assumed to be input/output

void foo()
{
    VARIANT v;
    VariantInit(&v);
    bar(&v);            // OK
    // ......
    VariantClear(&v);   // OK, assumed to be initialized by bar
}

另请参阅

C33001C33004