Pregunta Incremento de operadores y “comportamiento indefinido”.


Como se menciona en el Comp.lang.c Preguntas frecuentes, la norma C establece:

Entre el punto de secuencia anterior y el siguiente, un objeto tendrá su   valor almacenado modificado como máximo una vez por la evaluación de una expresión.   Además, se tendrá acceso al valor anterior solo para determinar el   valor que se almacenará.

Pero esto (ahora eliminado) artículo dice que a = ++b + ++c; es indefinido. ¿Podría alguien explicar por qué este es un comportamiento indefinido?


5
2017-08-15 16:45


origen


Respuestas:


A condición de que los objetos involucrados (a, b y c) en la expresión a = ++b + ++c; Son distintos, esa expresión está bien definida.

Quizás, el autor quiso usar la misma variable dos veces, como a = ++b + ++b;. Sólo puedo especular. Pero no hay indefinición en la expresión dada.


11
2017-08-15 16:51