C LanguagePuntos de secuencia


Observaciones

Norma Internacional ISO / IEC 9899: 201x Lenguajes de programación - C

El acceso a un objeto volátil, la modificación de un objeto, la modificación de un archivo o la llamada a una función que realiza cualquiera de estas operaciones son todos efectos secundarios , que son cambios en el estado del entorno de ejecución.

La presencia de un punto de secuencia entre la evaluación de las expresiones A y B implica que cada cálculo de valor y efecto secundario asociado con A se secuencia antes de cada cálculo de valor y efecto secundario asociado con B.

Aquí está la lista completa de puntos de secuencia del Anexo C del borrador de publicación en línea 2011 del estándar en lenguaje C:

Puntos de secuencia

1 Los siguientes son los puntos de secuencia descritos en 5.1.2.3:

  • Entre las evaluaciones del designador de función y los argumentos reales en una llamada de función y la llamada real. (6.5.2.2).
  • Entre las evaluaciones del primer y segundo operandos de los siguientes operadores: lógico AND && (6.5.13); OR lógico || (6.5.14); coma , (6.5.17).
  • ¿Entre las evaluaciones del primer operando del condicional ? : operador y cualquiera de los segundos y terceros operandos se evalúa (6.5.15).
  • El fin de un declarador completo: declaradores (6.7.6);
  • Entre la evaluación de una expresión completa y la siguiente expresión completa a evaluar. Las siguientes son expresiones completas: un inicializador que no forma parte de un literal compuesto (6.7.9); la expresión en una declaración de expresión (6.8.3); la expresión de control de una declaración de selección ( if o switch ) (6.8.4); la expresión de control de una sentencia while o do (6.8.5); cada una de las expresiones (opcionales) de una declaración for (6.8.5.3); la expresión (opcional) en una declaración de return (6.8.6.4).
  • Inmediatamente antes de que una función de biblioteca regrese (7.1.4).
  • Después de las acciones asociadas con cada especificador de conversión de función de entrada / salida con formato (7.21.6, 7.29.2).
  • Inmediatamente antes e inmediatamente después de cada llamada a una función de comparación, y también entre cualquier llamada a una función de comparación y cualquier movimiento de los objetos pasados ​​como argumentos a esa llamada (7.22.5).

Puntos de secuencia Ejemplos relacionados