#9453: Байты вверх тормашками

« картинки и свежие анекдоты | чат

#9453: Байты вверх тормашками

Обычный компилятор gcc для какой-то ARM-платформы, обычная функция, внутрь которой передается двухбайтовое целое число. Внутрь функции попадает цена на дрова, которая ну никак не коррелирует с передаваемым снаружи числом. Молодой программист вторые сутки долбится лбом о клавиатуру и просит помочь, а я, едва взглянув, вспоминаю похожие симптомы про передачу word’а из микрософтовской библиотеки в борландовую и наоборот.

Ради шутки говорю: «Сделай так, чтоб функция принимала обычное четырёхбайтовое целое, жалко тебе, что ли?» Программер правит код — всё работает как часы. На меня смотрят большие круглые глаза — великий шаман, блин!

А дело в чём? Прараметры в стеке выравниваются на четыре байта. А разработчики компилятора просто не договорились, какие два байта из четырех считать нужными. Тот, кто писал генерацию кода для вызова функции, считал, что это два верхних байта в стеке, а тот, кто писал доступ к параметрам из тела функции — что нижние. Между микрософтовскими и борландовыми stdcall-функциями подобная шняга была, что и помогло быстро решить проблему. Плохо, когда компилятор сам с собой не дружит…

Ещё интересное на этом сайте:

#9452: Всё в порядке
Анекдоты и картинки #8656899
Худший памятник (7 фото)
Уникальная Toyota Tundra выставлена на аукцион
Милые выпускницы 2012 (38 фото)
Призывники - кто они?
Анекдот дня по итогам голосования за 25 июня 2012
История дня по итогам голосования за 25 июня 2012
Афоризм дня по итогам голосования за 25 июня 2012
Неожиданность
Все, хозяйка... пиздец твоим тапкам!
Беседка своими руками
Коала Джимми
Забавные вывески мелких лавочников Найроби
Карелия, о. Мантсинсаари
Худший памятник за всю историю памятников
История Вселенной за 10 минут.
Она никогда не предаст!
Мотоцикл сувенирный
Не тот нынче гопник, не тот!
« все анекдоты и картинки
Рейтинг@Mail.ru