在使用GCC的Raspbian Code :: Blocks中忽略了警告__attribute __((cdecl))

时间:2013-08-09 10:36:09

标签: c++ codeblocks allegro raspbian cdecl

我正在关注来自fixbyproximity.com的Allegro游戏编程教程,我已经获得了面向对象的课程,但是我遇到了一个问题,即使用了TakeLife和ScorePoint的cdecl。基本上它会在调用函数的行中查找与函数实例化有关的错误。

注释掉该函数会使程序编译,但它会给我这些错误

warning: ‘cdecl’ attribute directive ignored [-Wattributes]
warning: ‘cdecl’ attribute directive ignored [-Wattributes]

可能会在这里获得一些downvotes,因为这里会有一些代码片段对不起,但我的其余代码都有效,我不想通过从节目的不同部分发布大量代码来混淆/混淆事物,我宁愿专注于我认为错误的一点,并找出如何解决它。

//Prototype Definition
void TakeLife() __attribute__((cdecl));   <-- these are ignored
void ScorePoint() __attribute__((cdecl));  <-- these are ignored

    // Rest of Program
    [...]

void TakeLife() //__attribute__((cdecl)) <-- original code, caused exception
{
   ship->loseLife();
}

void ScorePoint() //__attribute__((cdecl)) <-- original code, caused exception
{
   ship->addPoint();
}

据我所知,cdecl是stdcall的一种更灵活的替代方法,因此我想由于cdecl被忽略,我的编译器默认为stdcall,这就是函数调用失败的原因。我已经阅读了这些教程,下载了示例代码并进行了比较,并且我知道我的代码中的每一个都是正确的,但是由于某些原因这些行被忽略了。

0 个答案:

没有答案