C Programowanie Makra mnożenie [duplikat]

Możliwy duplikat:
C Makra i użycie argumentów w nawiasach

Uważam to pytanie makro za bardzo interesujące.

Jeśli ten poniższy kod jest zdefiniowany jako makro

#define MULT(x, y) x * y

A wywołanie funkcji jest wykonywane jakoint z = MULT(3 + 2, 4 + 2);. Żądane wyjście to 3 + 2 = 5 i 4 + 2 = 6 I 5 * 6 to 30.

Zwracany wynik to 13. Potrzeba go jako 3 + 2 * 4 + 2. Dlatego zgodnie z pierwszeństwem operatorów najpierw oblicza 2 * 4.

Co to za poprawka? W przypadku mniejszych funkcji, takich jak te, które są skuteczne? Definiowanie funkcji lub korzystanie z makr?

questionAnswers(2)

yourAnswerToTheQuestion