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?