03.12.2015, 02:24
Los "macros" son simplemente formas de hacer entender al procesador que debe reemplazar coincidencias.
Osea:
Todos esos resultados son "iguales" en cuanto a formula (osea, solo se ocupa multiplicaciуn), por eso no hay problemas. Pero si comienzas a aplicar sumas, restas, divisiones, entre otras, tendrбs problemas.
Si no entiendes a que me refiero te escrito los ejemplos mas explнcitos.
Osea:
pawn Код:
#define multiplicar(%0,%1) %0*%1
#define multiplicar2(%0,%1) (%0)*(%1)
#define multiplicar3(%0,%1) ((%0)*(%1))
printf("resultado1: %d", multiplicar(5, 5)); // Se reemplazarнa por "5*5" que es 25
printf("resultado2: %d", multiplicar2(5, 5)); // Se reemplazarнa por "(5)*(5)" que es 25
printf("resultado3: %d", multiplicar(5, 2, 5)); // Se reemplazarнa por "5*2*5" que es 50
printf("resultado4: %d", multiplicar2(5, 2, 5)); // Se reemplazarнa por "(5*2)*(5)" que es 50
printf("resultado5: %d", multiplicar3(5, 2)*4); // Se reemplazarнa por "((5)*(2))*2" que es 40
printf("resultado5: %d", multiplicar(5, 2)*2); // Se reemplazarнa por "5*2*2" que es 20
Si no entiendes a que me refiero te escrito los ejemplos mas explнcitos.