数字常量前应为“,”或“...”

Expected "," or "..." before numeric constant

我试过查找答案,但我无法从任何答案中推断出问题所在。当我尝试验证它时,它在数字常量之前显示“Expected”,或“...”并突出显示“#define Odvesna”

#define A1              35
#define B1              15
#define Odvesna         10
#define Prepona         30       


int O(int A1, int B1) {
    int result;
    result = 2*(A1+B1);
    return result;
}
int S(int A1,int B1) {
    int result;
    result = A1*B1;
    return result;
}
int St(int Odvesna,int Prepona) {
    int result;
    result = Prepona*Odvesna/2;
    return result;
}
int Ot(int Odvesna,int Prepona) {
    int result;
    result = sqrt(pow(Odvesna)+pow(Prepona))+ Odvesna+Prepona;
    return result;
}    
void Vystup(O,S,St) {
    Serial.print("O = ");Serial.println(O);
    Serial.print("S = ");Serial.println(S);
    Serial.print("St = ");Serial.println(St);
    Serial.print("Ot = ");Serial.println(Ot);     


/*******************SETUP**********************************/
void setup() {
    Serial.begin(115200);
    Vystup(O,S,St);  

}
/**************MAIN PROGRAM********************************/
void loop() {
}


   

int St(int Odvesna,int Prepona) {}被预处理器变成了int St(int 10,int 30) {},编译器不明白你的意思。

定义函数时必须使用其他变量名。

此外,void Vystup(O,S,St) {} 将不起作用;您将函数作为参数传递,而不是您可能认为的 ints。

  1. Vystup()函数末尾少了一个}

  2. 您不能将 #define 个名称重复用作 variable 个名称。

  3. 在此调用中:Vystup(O,S,St); 您将函数指针作为参数传递。