Problemas con sustitución matemática

El reemplazo es reemplazo de macros, reemplazo de cadenas, un reemplazo debe ser un todo; de lo contrario, después del reemplazo, cuando participa en otras operaciones, pueden ocurrir errores.

Con los corchetes, toda la cadena de reemplazo es un todo y no se producirán errores cuando participe en otras operaciones.

Por ejemplo, desde la perspectiva del lenguaje informático:

Definimos dos macros, MUL1 y MUL2. Cada uno tiene dos parámetros, A y B. Su función es multiplicar A y B.

La definición es la siguiente:

#Define MUL1(a, b) a*b

#Define MUL2 (a, b) ((a)*(b))

Ahora los usamos para reemplazar los casos a = 2 y b = 3:

MUL1(2, 3 ) El resultado de la sustitución se convierte en el resultado de la operación 2*3: 6 [resultado correcto].

El resultado de sustitución de MUL2(2,3) se convierte en ((2)*(3)) resultado de la operación: 6[resultado correcto]

Ahora los usamos para reemplazar a = 2 + 1 y b = 3+2:

El resultado de reemplazo de MUL1 (2+1, 3+2) se convierte en resultado de la operación 2+1*3+2: 7 [resultado incorrecto, no es lo que queremos 】.

El resultado de reemplazo de MUL2 (2+1, 3+2) se convierte en ((2+1)*(3+2)) resultado de la operación: 15 [el resultado es correcto].

Como se puede ver en lo anterior, MUL1 no usa paréntesis, a veces el resultado es correcto y otras veces el resultado es incorrecto.

MUL2 utiliza paréntesis y el resultado siempre es correcto.

Por eso se incluyen los paréntesis.