История изменений
Исправление KivApple, (текущая версия) :
Однако тем не менее, там есть куча кода, который для всех платформ одинаков.
Что мешает программисту на Си использовать какую-нибудь библиотеку, которая берёт на себя все специфичные вещи?
Взять тот же SDL. Можно написать игрушку, исходники которой менять не придётся, хоть ты компилируешь под винду, хоть под Linux, хоть по Mac OS. Отличаться будут только команды компиляции (и то какой-нибудь CMake упростит задачу портирования, а в простых случаях и вовсе позволит написать универсальный сценарий сборки), но это явно не часть исходного кода на Си (да и портабельность у разных систем сборки разная).
И да, в какой-нибудь Java тоже по факту портабельность осуществляется с помощью библиотек. Хоть интерфейс создания тех же окошек может быть и одинаков, но на винде в реальности будет дёргаться WinAPI, а под Linux - иксы. Чем кросс-платформенные библиотеки для Си (SDL, GTK) принципиально отличаются?
Исправление KivApple, :
Однако тем не менее, там есть куча кода, который для всех платформ одинаков.
Что мешает программисту на Си использовать какую-нибудь библиотеку, которая берёт на себя все специфичные вещи?
Взять тот же SDL. Можно написать игрушку, исходники которой менять не придётся, хоть ты компилируешь под винду, хоть под Linux, хоть по Mac OS. Отличаться будут только команды компиляции (и то какой-нибудь CMake упростит задачу портирования, а в простых случаях и вовсе позволит написать универсальный сценарий сборки), но это явно не часть исходного кода на Си (да и портабельность у разных систем сборки разная).
Исходная версия KivApple, :
Однако тем не менее, там есть куча кода, который для всех платформ одинаков.
Что мешает программисту на Си использовать какую-нибудь библиотеку, которая берёт на себя все специфичные вещи?
Взять тот же SDL. Можно написать игрушку, исходники которой менять не придётся, хоть ты компилируешь под винду, хоть под Linux, хоть по Mac OS. Отличаться будут только команды компиляции (и то какой-нибудь CMake упростит задачу портирования, а в простых случаях и вовсе позволит написать универсальный сценарий сборки), но это явно не часть исходного кода на Си.