Entry tags:
Программизм
Сегодня пронаблюдал любопытный глюк оптимизации.
Код, по смыслу эквивалентный
Object* Func(OtherObject* param) {
Obj2 * param1 = (Obj2*) param;
return param1->Pointer
}
при передаче туда NULL не выдал ошибку. А вернул какой-то ненулевой указатель.
Механизм более-менее понятен, но факт нетривиален...
Код, по смыслу эквивалентный
Object* Func(OtherObject* param) {
Obj2 * param1 = (Obj2*) param;
return param1->Pointer
}
при передаче туда NULL не выдал ошибку. А вернул какой-то ненулевой указатель.
Механизм более-менее понятен, но факт нетривиален...
no subject
за такое отрывать руки разработчикам компилятора.
no subject
Но результат неожиданный.
no subject
Пользуйте виртуальные функции и будет вам щастье.
Сорри, проходил мимо и не смог удержаться.
no subject
no subject
no subject