Void参数类型导致缺少类型错误

时间:2012-01-10 03:05:29

标签: c++ sdk void

这是原型:

void RecvProxy_ToggleSights( const CRecvProxyData* pData, void* pStruct, void* pOut );

然后是函数本身:

void RecvProxy_ToggleSights( const CRecvProxyData* pData, void* pStruct, void* pOut ){

CBaseCombatWeapon *pWeapon = (CBaseCombatWeapon*)pStruct;
if( pData->m_Value.m_Int )
    pWeapon->EnableIronsights();
else
    pWeapon->DisableIronsights();}

然后错误消息此代码(原型和定义)生成:

  

错误19错误C4430:缺少类型说明符 - 假定为int。注意:C ++不支持default-int f:\ Mods \ CI Testbed \ src \ game \ shared \ basecombatweapon_shared.cpp 47

如何解决此错误?

1 个答案:

答案 0 :(得分:1)

是否定义了'CRecvProxyData'类型?你的代码是正确的(假设所有用户定义的类型都已正确定义),尽管我建议你在自己的行上放置函数定义的开始和结束括号。

另外,我对void *提出了问题:它有点像C的宿醉,你应该在必要的时候从源代码中删除它。你可以改用多态或模板吗?

很可能你错过了#include,或者在你的包含警卫中犯了错误。如果您可以发布文件管理器中定义了'CRecvProxyData'的内容以及您发布的代码,那将是一个很好的帮助。否则,我只能推测:)。