Как стать автором
Обновить

Комментарии 5

Языки высокого уровня обеспечивают портируемость теоретически, а вот на практике есть множество нюансов. Скажем, Си никак не стандартизирует размеры своих базовых типов -- например, int может быть и 2-, и 4-, и 8-байтовым, а это напрямую влияет на портируемость использующих его программ. Так что перенести нечто на сях с одной архитектуры на другую, конечно, проще, чем если оно было написано на ассемблере, но перенос вряд ли сведётся к простой перекомпиляции, особенно если это древний код, когда со стандартизацией всё вообще было плохо.

перенос вряд ли сведётся к простой перекомпиляции

По всякому может быть. Если программист не закладывался на n - байтный int, а использовал sizeof, то перекомпиляции будет достаточно.Но реальные программы используют какие то системные API, а даже POSIX не закон а набор рекомендаций, и 100% POSIX-совместимости нет нигде. #ifdef наше всё.

sizeof не всегда спасёт. Скажем, если для подсчёта итераций цикла используется int, то его вдруг может оказаться мало. В общем, случаев потенциальной непереносимости полно, если не предпринимать специальных мер для её обеспечения -- ну а наперёд думают не так уж часто...

Поэтому надо знать size_t

@Beeline_tech неужели дела компании Билайн настолько плохи, что на редактора денег нет совсем? Который хотя бы подчистил за переводившим статью школьником несогласованные предложения. А в идеале проводил отбраковку исходно корявых статей и в целом проверял соответствие заголовка бессвязному нагромождению фактов внутри.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий