Почему трудно писать переносимые программы на Си?

Я хочу знать, почему слишком сложно заставить программу работать во многих ОС, таких как Windows и Linux, без использования клейкого кода. Все они имеют одинаковую архитектуру (x86), поэтому я думаю, что все должно быть просто. Кроме того, C стандартизирован, так почему реализации отличаются в этих ОС? Почему сложно следовать стандарту и внедрить универсальную библиотеку для всех ОС?

Я программировал на C почти два года, и в настоящее время я использую glib для переносимости.

Я не ищу решения этой проблемы, я уже использую glib для этой цели. Но я хочу знать, почему это необходимо, почему трудно создать C-библиотеку без различий.

[ДОБАВЛЯТЬ]

Например, когда я пишу программу на C / Glib, я использую gchar / gint и т. Д., Действительно, типы примитивов C, в википедии о glib говорится, что:

"Features

On an elementary level GLib provides type definitions replacing the C primitive types char, int, float, and so on in order to improve portability"

Почему примитивные типы C не переносимы и весь язык?

Спасибо за ответы на все вопросы.

Ответы на вопрос(10)

Ваш ответ на вопрос