2016-12-24 66 views
-1

我试图“修复”一个游戏中的一个问题,有.cpp文件和两个版本,也许我找到了包。什么性差异beetwen这个代码2个例子:C++语法和代码

例子#1

// not supposed to do anything while evocate 
    if (m_creature->HasAura(SPELL_EVOCATION)) 
    { 
     return; 
    } 

例2

// not supposed to do anything while evocate 
if (m_creature->HasAura(SPELL_EVOCATION)) 
    return; 

也许它`愚蠢的问题,我不是C++开发者,只是只知道蟒蛇我是新手。那么这段代码的逻辑有什么不同呢?非常感谢。

+2

没有区别。 – drescherjm

+1

避免用一种你不知道的编程语言来“调试”一个程序(例如C++是为你准备的)。而C++是一门非常复杂的编程语言。 –

+0

好吧生病尽量避免它,但没有逃脱;) –

回答

2

没有区别。它们是等价的。 当if正文中只有一条语句时,可以省略大括号。

+0

谢谢你的回答,我试图找到bug,但在C++没有expirience(这里是2代码版本: 我使用它: https://github.com /mangos/ScriptDev3/blob/master/scripts/eastern_kingdoms/karazhan/boss_curator.cpp 而这里第二个(更老的): https://github.com/scriptdev2/scriptdev2/blob/master/scripts/eastern_kingdoms/ karazhan/boss_curator.cpp 问题是暴徒每秒召唤一次召唤,并召唤另一个小怪,但他必须投20秒“招魂”咒语,而不要做任何事情;( –

0

它们是相同的。

如果您在if-statement之后没有加上大括号,那么只有下一行将被视为您的if-statement的一部分。

如果您想要在您的if-statement中包含多行代码,请使用大括号。如果您只想在您的if-statement中包含一行代码,则可以在第二个代码段中完成,而不使用大括号。

+0

谢谢你的回答,我试图找到bug ,但没有在C++ expirience(这里是2版本的代码: 我使用它: https://github.com/mangos/ScriptDev3/blob/master/scripts/eastern_kingdoms/karazhan/boss_curator.cpp 在这里,第二个(至极更年长): https://github.com /scriptdev2/scriptdev2/blob/master/scripts/eastern_kingdoms/karazhan/boss_curator.cpp 问题是,暴徒每秒召唤一个召唤,并召唤另一个小怪,但他必须投20秒的“招魂”咒语,而不要做任何事情;( –

0

在运行代码方面没有区别,您会得到相同的结果。但你在评论中的第二个问题并不是真的具体。您可以针对您的问题的具体信息提出第二个问题,或者您可以谷歌您的错误。 编辑:我没有真正理解这个问题,但如果你正在寻找两个版本的代码差异。在您添加的第一个版本中:

struct boss_curator : public CreatureScript 
{ 
    boss_curator() : CreatureScript("boss_curator") {} 
+0

谢谢!它在游戏中的具体问题。老板必须停止做任何事情并且施放拼写“Evocation” - 在“chaneling模式”中(不要打破它),但是他多次执行并且一次又一次地开始,并且在每次stopt \ start之后他召唤新的小怪。这个代码有2个版本,我使用“新”版本的https:// github。com/mangos/ScriptDev3/blob/master/scripts/eastern_kingdoms/karazhan/boss_curator.cpp - 但存在旧版https://github.com/scriptdev2/scriptdev2/blob/master/scripts/eastern_kingdoms/karazhan/boss_curator.cpp我试图比较一下 –