C++错误:ISO C++禁止声明.没有类型
C++ error: ISO C++ forbids declaration. with no type
有人可以帮助我解决这个问题吗?
我怎样才能使这行可以编译好?
ClientManager.h:332:错误:预期的","或"..."在"*"标记之前
ClientManager.h:332:错误:ISO C++禁止声明没有类型的"TPacketGDCombatZoneResetRanking">
ClientManager.h:333:错误:预期的","或"..."在"*"标记之前
ClientManager.h:333:错误:ISO C++禁止声明没有类型的"TPacketGDCombatZoneSkillsCache">
客户经理.h 行 332 - 333
void CombatZoneResetRanking(const TPacketGDCombatZoneResetRanking* p);
void UpdateSkillsCache(const TPacketGDCombatZoneSkillsCache* p);
客户端管理器.cpp函数
void CClientManager::CombatZoneResetRanking(const TPacketGDCombatZoneResetRanking* p)
{
CDBManager::instance().DirectQuery("UPDATE player.player SET combat_zone_rank = 0 WHERE combat_zone_rank > 0");
std::auto_ptr<SQLMsg> pMsg(CDBManager::instance().DirectQuery("SELECT * FROM player.combat_zone_ranking_weekly ORDER BY memberPoints DESC LIMIT 3"));
if (pMsg->Get()->uiNumRows == 3)
{
MYSQL_ROW row;
int memberRank = 1;
char szQuery[512 + 1];
while ((row = mysql_fetch_row(pMsg->Get()->pSQLResult)))
{
sprintf(szQuery, "UPDATE player.player SET combat_zone_rank = '%d' WHERE name = '%s'", memberRank, row[0]);
CDBManager::instance().DirectQuery(szQuery);
memberRank++;
}
}
else {
sys_err("The giving ranking medals not was possible because not was exist 3 players on ranking weekly.");
}
CDBManager::instance().DirectQuery("TRUNCATE TABLE player.combat_zone_ranking_weekly");
}
void CClientManager::UpdateSkillsCache(const TPacketGDCombatZoneSkillsCache* p)
{
char szQuery[2048 + 1];
sprintf(szQuery,
"INSERT INTO player.combat_zone_skills_cache (pid, skillLevel1, skillLevel2, skillLevel3, skillLevel4, skillLevel5, skillLevel6) "
"VALUES('%d', '%d', '%d', '%d', '%d', '%d', '%d') "
"ON DUPLICATE KEY UPDATE skillLevel1 = '%d', skillLevel2 = '%d', skillLevel3 = '%d', skillLevel4 = '%d', skillLevel5 = '%d', skillLevel6 = '%d'",
p->dwPID, p->dwSkillLevel1, p->dwSkillLevel2, p->dwSkillLevel3, p->dwSkillLevel4, p->dwSkillLevel5, p->dwSkillLevel6, p->dwSkillLevel1, p->dwSkillLevel2, p->dwSkillLevel3, p->dwSkillLevel4, p->dwSkillLevel5, p->dwSkillLevel6);
CDBManager::instance().DirectQuery(szQuery);
}
例:
case HEADER_GD_COMBAT_ZONE_RESET_RANKING:
CombatZoneResetRanking((TPacketGDCombatZoneResetRanking*)data);
break;
case HEADER_GD_COMBAT_ZONE_SKILLS_CACHE:
UpdateSkillsCache((TPacketGDCombatZoneSkillsCache*)data);
break;
n.m.
的评论击中了它的头。
这里的编译器错误消息非常不幸(并表明您使用的是过时的 GCC 版本(。问题是编译器找不到你在那里使用的类型,所以它不是const some_type* name_of_parameter
读取参数,而是将其读取为const name_of_parameter other_stuff_that_shouldnt_be_here
,并抱怨 1( 你不能在没有先给出类型的情况下命名参数和 2( 你在参数名称后有一些意想不到的标记(即*
(。
但真正的问题是没有声明类型,导致编译器走上错误的道路。
您需要使用前向声明声明类型,或者包含定义它们的标头。
相关文章:
- ArduinoJson 6.15.2:JsonObject没有命名类型
- 防止主数据类型C++的隐式转换
- 大量序列中核苷酸类型的快速计数
- 如何从C++中的依赖类型中获得它所依赖的类型
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 是否可以初始化不可复制类型的成员变量(或基类)
- 如何获取std::result_of函数的返回类型
- 从父命名空间重载类型
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 我想将一个对T类型的非常量左值引用绑定到一个T类型的临时值
- Openssl 1.1.1d无效使用不完整的类型"struct dsa_st"
- 访问者访问变体并返回不同类型时出错
- 在VS2010-VS2015下编译时,如何使用decltype作为较大类型表达式的LHS
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 模板元程序查找相似的连续类型名称
- 是否可以从int转换为enum类类型
- 构造函数正在调用一个使用当前类类型的函数
- 我应该使用什么来代替void作为变体中的替代类型之一
- 类中的字符串不命名类型