Немного про undefined behavior
Jun. 9th, 2011 07:07 pm
extern int a,b;
void f(void) {
a = (a++) % b;
}
При входных значениях a=19, b=5 значение a в результате:
gcc3.4, tcc, clang2.9, SunC++, C#: 4
gcc4.*: 20
SunC, IntelC 10.1: 5
судя по задумке автора, должно было получиться 5. Хотя это зависит от конкретного применённого психоактивного вещества...
(Оригинал - ныне удалённый драйвер в staging linux)