似乎无法使用struct中的int

问题描述

|
struct stVitals                       // Entity vitals
{
    int str;
    int xp;
    int batk;
};

int doAttack(stVitals Aggressor,stVitals Defender)    // Calculate attack results
{
    doHit(getATK(Aggressor),getDEF(Defender),getDDG(Defender),getLVL(Aggressor),getLVL(Defender));
}

int doHit([...]                       // Calculate damage

int getATK(stVitals sourcemob)        // Calculate attack value
{
    int output = ((sourcemob.str * getLVL(sourcemob.xp)) * 0.1) + sourcemob.batk;
    return output;
}

int getLVL(int xp)                    // Return level from XP
{
    return (xp * 0.001);
}
给出以下错误
ERROR: Conversion from \'int\' to non-scalar type \'stVitals\' requested
我以这种方式在程序周围的各种stVital实例中使用int都没有问题……我在想什么呢? 编辑:围绕getATK的第一行大声疾呼     

解决方法

这里缺少的是您称为call2ѭ的代码。大概是,您在调用该函数时错误地传递了
int
参数而不是
stVitals
参数。     ,doAttack()使用stVitals调用getLvl;