Самая большая проблема с этим подходом состоит в том, что так много разработчиков делают это, что, если вы используете стороннюю библиотеку, вы, скорее всего, столкнетесь с конфликтом имен символов или несколькими именами для одних и тех же типов.В случае необходимости было бы целесообразно придерживаться стандартной реализации, предоставляемой C99 stdint.h.
Если ваш компилятор не предоставляет этот заголовок (как, например, VC ++), тогда создайте тот, который соответствует этому стандарту.Например, один для VC ++ можно найти по адресу http://msinttypes.googlecode.com/svn/trunk/stdint.h
. В вашем примере я не вижу особого смысла для определения типов с плавающей запятой, зависящих от размера, поскольку они обычно тесно связаны с аппаратным обеспечением FP цели ипредставление используется.Кроме того, диапазон и точность значения с плавающей запятой определяется сочетанием ширины экспоненты и значительной ширины, поэтому одна только общая ширина мало что говорит вам или гарантирует совместимость между платформами.Что касается одинарной и двойной точности, то между платформами гораздо меньше вариаций, большинство из которых используют представления IEEE-754.На некоторых 8-битных компиляторах float и double являются 32-битными, тогда как long double на x86 GCC составляет 80 бит, но только 64-битные в VC ++.Аппаратный модуль x86 поддерживает 80-битное аппаратное обеспечение (2) .