ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
10 июля
297136 Топик полностью
fk0, легенда (06.01.2012 14:38, просмотров: 88) ответил Юра на Я не знаю как назвать uint8 или sint16 машинными или мотоциклетными, компиляторов не писал, но путаю и присваиваю друг другу регулярно. Особенно когда приходится в процессе работы изменять размеры одной а она в проекте активно совокупляется с
Это проблема начинающих программистов. В любых вычислениях нужно понимать чем ограничивается диапазон результата (не будет ли переполнения в вычислениях...) и соответственно выбирать тип данных (для возвращаемого значения функции, например). При присваивании чего-то новой переменной нужно смотреть что присваивается (с каким типом данных) и делать выводы. Тогда странно, что поднята проблема именования переменных -- следуя такой логике и функции нужно называть compute_u16(...) Но ещё раз -- данные о типе уже известны в декларации переменной или функции и смысла их кодировать ещё и в имени никакого. Может вам стоит подыскать редактор позволяющий быстро подглядеть декларацию при необходимости (Eclipse, Vim...) Что же касается вычислений выражений в пределах одного оператора языка C -- то все переменные типа xxx8 расширяются до int или unsigned. И нужды в ручном контроле нет. А за long и float всё равно руками смотреть. Короче говоря -- учитесь нормально программировать, проблема с u16 и u8 -- надуманная. И учитесь использовать компилятор. GCC например, умеет следить за знаковостью (-Wsign-compare и т.п.) и многими другими вещами. А от нечитаемых имён скорей зло -- буков много, но текст становится не читаемым и не понимаемым, китайская грамота с известными последствиями... Вообще использовать без нужды 8-битные типы данных и unsigned (кроме как для перечислимых данных) не следует. 8-бит плохо работает на 16/32-бит платформах и провоцирует ошибки. unsigned тоже провоцирует ошибки, ибо идёт вразрез с алгебраической логикой в рамках которой мыслит человек.
[ZX]