ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
24 апреля
433579 Топик полностью
fk0, легенда (16.08.2013 18:00 - 18:03, просмотров: 149) ответил mazur на Твое возмущение понятно. Потому что на разных платформах разная разрядность. Не помню, чего именно. Но меня это сейчас не трогает, пока я пробую на AVR. Да и в лом писать каждый раз и искать, чтобы скопипастить unsigned char, unsigned int. Быстро
Выражение "unsigned int" бессмысленно и сокращается до "unsigned". Либо до "int". Смотря что нужно. А вот с char аккуратнее! Либо всегда сам пиши "unsigned char", либо "signed char". Либо всегда помни, что по-умолчанию на данной платформе (если писать просто "char") он может оказаться либо "signed", либо "unsigned" -- везде по-разному! И облажаться весьма легко! Это причина, почему не нужно без крайней нужды хранить числовые значения в char и следует использовать int (либо int_fast8_t). И на счёт знаковости. Не рекомендую без нужды использовать беззнаковые числа. Проблема в том, что для них в ряде случаев не работает алгебра: из A+B > C не следует A > C-B (переполняется и получается очень большое число вместо отрицательного). Об этом легко забыть самому программисту. PS: хотя да, на некоторых 8-битниках очень плохо с командами для знаковых операций и код получается больше.
[ZX]