Pregunta

He mirado en SO / IEC 9899 : 201x bajo comportamiento no especificado J.1:

"The order in which subexpressions are evaluated and the order in which side effects
take place, except as specified for the function-call (), &&, ||, ?:, and comma
operators (6.5)."

¿Esto significa que en

func1() + func2();

func2 () puede ser preformado antes de func1 (), o incluso durante func1 ()?

¿Fue útil?

Solución

En el estándar actual (ISO / IEC 9899: 1999) hay un punto de secuencia entre las llamadas de función, pero el orden de la evaluación de los operandos a + no se especifica de manera func1 puede ser llamado antes o después de func2 pero las llamadas de función debe no se superponen o se intercalan de forma alguna.

Esto significa que cada uno de func1 y func2 puede, si se desea, interactuar con algunos datos compartidos sin tener que el cambio de datos en virtud del mismo de una manera inesperada.

Otros consejos

No durante, pero seguro, ya sea 1 y luego 2 o 2 y luego 1.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top