Перейти к содержанию
    

А как по вашему можно еще?

 

А никак. Она в озу должна быть uint8_t, а в регистрах - uint_fast8_t, что на автоматизме компилятором не поддерживается. Следовательно правильный ответ - фтопку bool.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Следовательно правильный ответ - фтопку bool.

+ пицот

 

Тем более, что важен не сам bool, а в логическом выражении. А тут уже структуры с битовыми полями утрясутся компилятором до пары выражений and/or с константой (набором бит), а при операциях с тупо bool - никогда красоты такой не увидать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Следовательно правильный ответ - фтопку bool.

 

Если звезды зажигаются, значит это кому-то нужно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если звезды зажигаются, значит это кому-то нужно.

Bool - это закидон из языка другого уровня, повыше, чем Си (хоть с десятью плюсами).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Bool - это закидон из языка другого уровня, повыше, чем Си (хоть с десятью плюсами).

 

 

В курсе :rolleyes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Bool - это закидон из языка другого уровня, повыше, чем Си (хоть с десятью плюсами).

Эта "звезда" предусмотрена специально для пришедших с "языка другого уровня", дабы не вызывать у них состояние когнитивного диссонанса.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Эта "звезда" предусмотрена специально для пришедших с "языка другого уровня", дабы не вызывать у них состояние когнитивного диссонанса.

 

А эффект от него - обратный. Вводящий в ступор.  :biggrin: Как и реализация довольно-таки абстрактного и платформенно-зависимого типа Boolean на "языке другого уровня" в виде 1 байта. Дурдом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А эффект от него - обратный. Вводящий в ступор. 

Какой ещё ступор? Нормальный тип, два состояния, "да" или "нет".

Логически воспринимается проще, чем int или char для этой же цели.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Логически воспринимается проще, чем int или char для этой же цели.

 

Человеком, но не процом с разрядностью регистров больше char.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

+1. Тоже хотел эти МК как пример "малоногих" ARM привести. 100 Series Devices

Хороший пример. Хотя эти заразы (Luminarymicro) для получения даташита требуют регистрации, нашел, хоть и устаревший (2006-го). И что там видим.

 

Да, круто. PLL до 200МГц, UART с буферами, до 4-х 16 битных таймеров, встроенное деление, LDO .... В общем ГУД.

 

А теперь ложка дегтя ;) . Традиционно - отсутствие ЕЕPROM. Нет АЦП. Ну и самое главное - потребление 35 мА на 20 МГц "System Clock(with PLL)" (сколько кушает в sleep-е в той доке не указано :( )!!!

 

ЗЫ. В общем вот так и получаем, что как только речь заходит о устройстве с батарейным питанием AtMega88 становится в данном случае более разумным выбором (кстати, и более дешевым) чем LM3S102...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Человеком, но не процом с разрядностью регистров больше char.

Ну тут, видимо, компромисс между скоростью обработки и обьёмом занимаемой памяти...

 

Хороший пример. Хотя эти заразы (Luminarymicro) для получения даташита требуют регистрации, нашел, хоть и устаревший (2006-го).

А что так боимся зарегистрироваться? Не съедят, уверяю! :laughing:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну тут, видимо, компромисс между скоростью обработки и обьёмом занимаемой памяти...

 

Какой, к черту, компромисс? Вот если бы bool был нативным типом у компилятора, да еще и правильно обрабатывался, тогда да.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какой, к черту, компромисс? Вот если бы bool был нативным типом у компилятора, да еще и правильно обрабатывался, тогда да.

Чего-то я не понимаю. В чём проблема-то? Хотите быстро, определите свой тип BOOL как uint_fast8_t. Хотите компактно используйте макрос битовой упаковки. Си позволяет делать и то и другое. Контроллеры то тут причём?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чего-то я не понимаю. В чём проблема-то? Хотите быстро, определите свой тип BOOL как uint8_fast.

 

Хочется, чтобы и быстро, и качественно. А это значит, что пока операнд в регистрах - должен иметь тип uint_fast8_t, а когда попадает в ОЗУ - просто uint8_t. Без нативной поддержки компилятором это сделать автоматически невозможно, а значит bool идет лесом :)

 

Контроллеры то тут причём?

 

Контроллеры ни при чем. Так, оффтоп небольшой. Щас завяжем, опять будем AVR8 гноить :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...