Temat: Przykładowe pytania na rozmowie kwalifikacyjnej
Jerzy M.:
Zdaje się, że odpowiedź tylko jedna jest dobra. Szczerze powiedziawszy, do wczoraj uważałem, że argumenty obliczane są od końca, czyli wpierw 'b', potem 'a', ale przez forum gamedev.pl akurat przewinęło się to pytanie też.
Od końca są wkładane na stos, więc w praktyce funkcja najpierw użyje wartości a, potem b.... ale to jest odpowiedź podporządkowana pod konkretny kompilator, którego programiści przyjęli taką konwencję. "Jedyna słuszna" odpowiedź to właśnie taka, że standard nie definiuje kolejności, więc powinno się w miarę możliwości unikać wywołań funkcji typu f(a+3, b+1) (jeśli np funkcja pobiera int), bo zwrócony wynik może być diametralnie różny w zależności od używanego kompilatora.
To problem analogiczny jak do sytuacji, gdy pada pytanie: jaki będzie wyniki poniższej operacji w C++?
++i++
Na poprawną odpowiedź tutaj można (jak sądzę) łatwiej wpaść... nie mniej tego typu haki powinny się wg mnie nie powinny się pojawiać w ogóle, a jeśli już: to na bardzo wysokie stanowisko, gdzie pełna/bardzo duża znajomość standardu jest konieczna.