error C2332: “struct”: 缺少标记名
2011年08月25日
环境:xp sp3,vs2008, 一段这样的代码
typedef struct TCP_KEEPALIVE
{
u_long onoff;
u_long keepalivetime;
u_long keepaliveinterval;
}TCP_KEEPALIVE;
报错
1>正在编译...
1>xtype.cpp
1>e:\hbj\test3\kqcici\kqcici\utility\xtype.h(275) : error C2332: “struct”: 缺少标记名
1>e:\hbj\test3\kqcici\kqcici\utility\xtype.h(275) : error C2011: “”: “enum”类型重定义
1> c:\program files\microsoft sdks\windows\v6.0a\include\shlobj.h(3599) : 参见“”的声明
1>e:\hbj\test3\kqcici\kqcici\utility\xtype.h(275) : error C2143: 语法错误 : 缺少“;”(在“常量”的前面)
1>e:\hbj\test3\kqcici\kqcici\utility\xtype.h(275) : error C2059: 语法错误 : “常量”
1>e:\hbj\test3\kqcici\kqcici\utility\xtype.h(276) : error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>e:\hbj\test3\kqcici\kqcici\utility\xtype.h(276) : error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>e:\hbj\test3\kqcici\kqcici\utility\xtype.h(280) : error C2059: 语法错误 : “常量”
查看类定义,结果有两个
ws2ipdef.h已经定义了TCP_KEEPALIVE,
哎,只能改自己的结构体名了