C++11 阿杜伊诺错误。可以我找不到

C++11 阿杜伊诺错误。可以我找不到,c++11,if-statement,struct,arduino,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列:6[错误]在“如果”之前预期为不合格id(p>1) 您可以阅读C++中的结构。 简而言之,它是其他

我在这里遇到了arduino错误

struct student{
int num,ac,sp,co, sum = 0;
    if (ac>=30 && sp>=30 && co>=30) 
    ^
        sum = ac+sp+co;
};
我现在只是在学习C++的方法,所以这可能是个愚蠢的错误。提前谢谢。 确切错误:行:12列:6[错误]在“如果”之前预期为不合格id(p>1) 您可以阅读C++中的结构。 简而言之,它是其他数据类型的集合。所有逻辑(if语句)都应该放在函数中

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

int num = 0, ac = 0, sp = 0, co = 0, sum = 0;
相反,您只初始化了
sum
。其他变量采用默认值


我不确定我是否完全理解您试图实现的目标,但请尝试查看此代码(它不是Arduino,但您应该了解它):

struct学生{
int num、ac、sp、co;
int getSum(){
如果(ac>=30&&sp>=30&&co>=30)
返回=ac+sp+co;
否则返回0;
}
};
int main(){
学生;
student.ac=30;
student.cp=40;
student.co=50;

cout,从这里开始。这是更大代码的一部分。它们已经在外部初始化。
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;
}