编译器警告(级别 1 和级别 2)C4091
“keyword”:没有声明变量时忽略“type”的左侧
编译器检测到这种情况:用户可能打算要声明一个变量,但编译器无法声明该变量。
示例
用户定义的类型声明开头处的 __declspec
应用于该类型的变量。 C4091 指示未声明任何变量。 以下示例生成 C4091。
// C4091.cpp
// compile with: /W1 /c
__declspec(dllimport) class X {}; // C4091
// __declspec attribute applies to varX
__declspec(dllimport) class X2 {} varX;
// __declspec attribute after the class or struct keyword
// applies to user defined type
class __declspec(dllimport) X3 {};
如果标识符是 typedef,它也不能是变量名。 以下示例生成 C4091。
// C4091_b.cpp
// compile with: /c /W1 /WX
#define LIST 4
typedef struct _LIST {} LIST; // C4091