Tôi muốn biết, tại sao nó quá khó để làm cho một chương trình chạy trong nhiều hệ điều hành, như Windows và Linux, mà không bao gồm mã keo. Tất cả đều chia sẻ cùng một kiến trúc (x86), vì vậy tôi nghĩ nó nên đơn giản. Hơn nữa, C được chuẩn hóa, vậy tại sao các triển khai khác nhau trong các hệ điều hành này? Tại sao khó tuân theo tiêu chuẩn và triển khai một thư viện chung cho tất cả các hệ điều hành?Tại sao khó viết các chương trình C di động?
Tôi đã lập trình trong C gần hai năm và hiện tại tôi sử dụng glib cho tính di động.
Tôi không tìm kiếm giải pháp cho vấn đề này, tôi đã sử dụng glib cho mục đích này. Nhưng tôi muốn biết lý do tại sao nó là cần thiết, tại sao nó dificult để làm cho một thư viện C mà không có sự khác biệt.
[ADD]
Ví dụ, khi tôi viết một chương trình trong C/Glib, tôi sử dụng các gchar/gint và vân vân các loại thực sự là loại nguyên thủy C, trong wikipedia về lém lỉnh, nó nói rằng:
"Tính năng
trên một trình độ sơ cấp GLib cung cấp định nghĩa kiểu thay thế các loại nguyên thủy C char, int, float, và vân vân nhằm nâng cao tính di động"
Tại sao C loại nguyên thủy không di động và toàn bộ ngôn ngữ?
Cảm ơn tất cả các câu trả lời.
Ghi đè của C loại nguyên thủy thực sự là để phục vụ cho các CPU khác nhau. Linux chạy trên rất nhiều CPU khác nhau và thậm chí Windows hỗ trợ các chế độ hoạt động khác nhau của x86 (32 và 64 bit). C bây giờ có int32_t, uint16_t vv để cải thiện mọi thứ một chút. – Dipstick
Cảm ơn tất cả các câu trả lời, tôi thực sự sẽ không chọn câu trả lời để đóng chủ đề này, bởi vì tôi nghĩ rằng mỗi câu trả lời hoàn thành lẫn nhau. nhưng, tôi phải chọn câu trả lời tốt nhất, vì vậy tôi chọn de nhiều hơn bình chọn, cảm ơn rất nhiều cho bạn thời gian, D – drigoSkalWalker
Tôi đã quay trở lại thay đổi tiêu đề của bạn. Ngay cả khi bạn đã hoàn thành chủ đề, những người khác vẫn có thể tìm thấy cách sử dụng cho nó và "đóng" có ý nghĩa cụ thể ở đây. – dmckee