Si usted tiene una función de C que devuelve un entero, se podría escribir una declaración como esta:¿Existe un orden de evaluación definido para & = y | =?
MyInt &= MyFunc();
... en el que estamos usando el operador de bits-y asignación.
La pregunta es: ¿se garantiza que MyFunc() se ejecutará, incluso si MyInt es igual a cero?
Likwise, si utilizáramos el operador de asignación O bit a bit (| =), ¿MyFunc() se ejecutaría siempre, incluso si MyInt se configurara para todos?
Dicho de otra manera: ¿está permitida la evaluación diferida en C para operadores bit a bit?
Excepto que 'MyInt' se evalúa ** una vez ** (puede ser importante cuando se trata de una expresión con efectos secundarios) –
Lo que está en el LHS de la tarea no será evaluado. –
Neil: considere 'myMap [" test "] | = 10;' donde 'myMap.operator []' imprime algo. Se imprimirá dos veces en el segundo formulario, pero una vez en el formulario de asignación compuesta. –