В языке Си есть и активно используется куча всего такого, для чего не определено единое для всех платформ поведение. Например, int имеет такой размер, какой удобно платформе, что уже неприятно, если вдруг данные, которые вчера влезали, сегодня не влезают, не говоря уже о записи их на внешние устройства для чтения кем-нибудь. Элементы массива struct'ов компилятор может по своему желанию выровнять на границу слова. Аналогично - какой-нибудь long внутри struct, особенно если архитектура процессора не позволяет ему адресовать невыровненные слова. Учитывая обычные для Си операции вида "привести указатель к char* , прибавить сколько-то, откастовать полученное к другому типу указателя и что-нибудь сделать с полученным", простор для непереносимостей вообще гигантский. Так что - только java, только хардкор :)
no subject
Date: 2016-04-05 09:40 am (UTC)