编译器警告(等级 4)C4221
使用的非标准扩展:“identifier”:无法使用自动变量的地址来初始化
利用默认的 Microsoft 扩展 (/Ze) ,可以使用本地(自动)变量的地址来初始化聚合类型(array、struct
或 union
)。
示例
// C4221.c
// compile with: /W4
struct S
{
int *i;
};
void func()
{
int j;
struct S s1 = { &j }; // C4221
}
int main()
{
}
根据 ANSI 兼容性 (/Za),此类初始化无效。