编译器错误 C2513

“type”:在“=”前没有声明变量

类型说明符显示在没有变量标识符的声明中。

以下示例生成 C2513:

// C2513.cpp
int main() {
   int = 9;   // C2513
   int i = 9;   // OK
}

为 Visual Studio .NET 2003 执行的编译器一致性工作也可能生成此错误:不再允许初始化 typedef。 根据标准,现在不允许 Typedef 的初始化,并且将生成编译器错误。

// C2513b.cpp
// compile with: /c
typedef struct S {
   int m_i;
} S = { 1 };   // C2513
// try the following line instead
// } S;

另一种方法是删除 typedef 以使用聚合初始值设定项列表定义变量,但不建议这样做,因为它会创建一个与类型同名的变量并隐藏类型名称。