Sé que C++ no especifica el orden en que se pasan los parámetros a una función. Pero si escribimos el siguiente código:orden de convocatoria y evaluación de llamadas
void __cdecl func(int a, int b, int c)
{
printf("%d,%d,%d", a,b,c);
}
int main()
{
int i=10;
func(++i, i, ++i);
}
Podemos decir de manera fiable la salida sería 12,11,11
ya que el __cdecl asegura que orden de los argumentos de paso es de derecha a izquierda?
Como nunca escribiría un código como este, tengo curiosidad por saber qué provocó esta pregunta. ¿Cuál es la restricción? –
http://stackoverflow.com/questions/4176328/undefined-behavior-and-sequence-points –
Además, no ha leído el millón y una publicación acerca de no modificar una variable más de una vez en una declaración. –