编译器警告(级别 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