Arduino错误。可以找到它

时间:2016-10-18 07:59:11

标签: c++11 if-statement struct arduino

我在这里得到了arduino错误。

struct student{
int num,ac,sp,co, sum = 0;
    if (ac>=30 && sp>=30 && co>=30) 
    ^
        sum = ac+sp+co;
};

我现在正在学习C ++,所以这可能是一个愚蠢的错误..提前谢谢。 确切错误:行:12 col:6 [错误]期望在'if'之前的unqualified-id

1 个答案:

答案 0 :(得分:1)

1) Here你可以阅读c ++中的结构是什么。 简而言之,它是其他数据类型的集合。所有逻辑(你的if语句)都应该放在函数中。

2) 看起来你想做这样的事情:

int num = 0, ac = 0, sp = 0, co = 0, sum = 0;

相反,您只是初始化了sum。其他变量采用默认值。

我不确定我是否强行理解你想要达到的目标,但是试着看看这段代码(它不是Arduino,但你应该明白这一点):

struct Student {
    int num, ac, sp, co;

    int getSum() {
        if (ac >= 30 && sp >= 30 && co >= 30)
            return = ac + sp + co;
        else return 0;
    }
};

int main() {
    Student student;
    student.ac = 30;
    student.cp = 40;
    student.co = 50;

    cout << student.getSum();

    return 0;
}

现在,这是问题所在。 在致电student.getSum()之前,您始终必须初始化acspco(正如我在main()中所做的那样),否则您可能会获得垃圾结果。为避免这种情况,请为每个变量赋予默认值(构造函数是一个很好的位置)。