Nieoczekiwane wyjście w c [duplikat]

To pytanie ma już tutaj odpowiedź:

Makra C i użycie argumentów w nawiasach 2 odpowiedzi

Jestem nowy w języku c. Chciałem tylko wiedzieć, dlaczego moje makro nie działa poprawnie. Daje mi dane wyjściowe jako 13, gdzie moim oczekiwanym wyjściem jest 24.?

#include<stdio.h>
#define mult(a,b) a*b
int main()
{
    int x=4,y=5;
    printf("%d",mult(x+2,y-1));
    return 0;
}

questionAnswers(4)

yourAnswerToTheQuestion