Это, возможно, вопрос, который, вероятно, должен быть известен.
Пятнадцать лет назад или около того, много кода на C, на которые я смотрел бы, имели массу целочисленных typedefs в платформенных #ifdef
s. Кажется, каждая программа или библиотека, на которую я смотрел, имели свой собственный, несовместимый суп-суп. Я не знал много о программировании в то время, и казалось, что причудливая куча обручей, чтобы проскочить, просто сообщила компилятору, какое целое вы хотели использовать.
Я собрал рассказ в своем уме, чтобы объяснить, что такое эти typedef, но я действительно не знаю, правда ли это. Я предполагаю, что в основном, когда C был впервые разработан и стандартизирован, не было осознано, насколько важно было иметь возможность платформы - независимо получить целочисленный тип определенного размера, и, следовательно, все исходные C-целые типы могут быть разных размеров на разных платформах. Таким образом, каждый, кто пытается написать переносимый код C, должен был сделать это сам.
Это правильно? Если да, то как программисты ожидали использовать C-целые типы? Я имею в виду, что на низкоуровневом языке с большим количеством бит-скрипов, не важно ли говорить "это 32-битное целое число"? А так как язык был стандартизован в 1989 году, наверняка возникла мысль, что люди будут пытаться писать переносимый код?