- 论坛徽章:
- 0
|
请问大侠们,下面一段代码:
MoveItemClientCmd *rev = (MoveItemClientCmd *)cmd;
send.op_type = ItemOperationType_Move;
GameItem* item = GlobalItemManager::getInstance().getItemByThisID(rev->thisid);
if(item)
{
if((item->m_data.pos.z >= PackageSubType_SubalternCommon ||
rev->dst.z >= PackageSubType_SubalternCommon) && m_gsm)
{
send.ret = m_gsm->m_spm->moveItem(rev->thisid, rev->dst);
}
else
{
send.ret = m_packages.moveItem(rev->thisid, rev->dst);
}
}
-----------------如果编译的时候开启-O2后,我发现rev直接被优化掉了,就是
MoveItemClientCmd *rev = (MoveItemClientCmd *)cmd;
这行代码根本没有执行,导致后面的所有数据都出错了,
gcc的优化怎么会吧有用的变量优化掉呢,这个优化太得不偿失了吧?
请高人指教 谢谢 |
|