ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
28 апреля
307285 Топик полностью
fk0, легенда (13.02.2012 22:18, просмотров: 292) ответил fk0 на Они там в этой MISRA совсем с ума сошли. Звучит как "язык программирования C не должен использоваться". :-/
Но я не уверен, что это не плохой перевод или изложение своими словами без полного понимания сути. Смысла в typedef int myint никакого нет. Скорей имелось ввиду -- отказ именно от типов данных с "неопределённой разрядностью". Смысл примерно понятен: код с использованием стандартных C-типов рискует не заработать на машине с другой шириной тех же типов данных. Классический пример -- int и перенос с 32 бит на 16 бит. Вообще это мало чем отличается от использования типов из stdint.h. Более того, лучше использовать stdint.h, потому, что самостоятельно назначенные типы нужно не забывать на каждой новой платформе соответственно назначать. И кроме того, вообще это не очень хорошая идея и об этом тоже повсеместно пишется. Насильное приведение к определённой разрядности может даст более надёжный код, не вызывающий проблем при перекомпиляции на другой платформе. Но одновременно такой код может быть и более объёмным и более медленным. Если целевая платформа не поддерживает указанную разрядность естесственным способом. Пример: 8 и 16-битные типы данных на 32-битной платформе вызовут массу ненужных операций в каждом арифметическом выражении. Вопрос спорный в общем. Ну а что касается бездумного следования правилам -- заставь дурака не использовать goto...
[ZX]