Вопросы по С/С++ (СИ)
Вероятнее всего, что тип registerSetting_t состоит из двух элементов. Был бы int - было бы сообщение об ошибке. не?
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
- Реклама
Не могу разкурочить этот тип. Это выдал кодогенератора, мол заготовка. Определение этого типа нет.
Теория — это когда все известно, но ничего не работает. Практика — это когда все работает, но никто не знает почему. Мы же объединяем теорию и практику: ничего не работает… и никто не знает почему!
© Альберт Эйнштейн
© Альберт Эйнштейн
- Сообщения: 353
- Зарегистрирован: Вс янв 19, 2014 22:41:55
[uquote="Chip115",url="/forum/viewtopic.php?p=3295062#p3295062"]Это выдал кодогенератора, мол заготовка. Определение этого типа нет.[/uquote]
Если код собирается - его не может не быть. Гляньте в препроцессорный выхлоп - возможно для этого придётся включить временно опцию preprocess only в настройках проекта. В папочке с временными файлами компиляции загляните в разные типы - они или *.i или *.pre, иногда вместо объектников - у разных тулчейнов по разному.
Если код собирается - его не может не быть. Гляньте в препроцессорный выхлоп - возможно для этого придётся включить временно опцию preprocess only в настройках проекта. В папочке с временными файлами компиляции загляните в разные типы - они или *.i или *.pre, иногда вместо объектников - у разных тулчейнов по разному.
Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR! 
- Сообщения: 208
- Зарегистрирован: Вс дек 10, 2006 19:26:13
Почему переменная, обьявленная как unsigned char уходит на минус?
Это в IAR для ARM.
Код: Выделить всё
unsigned char x;
if(x<0) x=0; // так компилятор ругается
if(x<=0) x=0; // уходит на минус
if(x==0) x=0; // тоже уходит на минус
if(x<1) x=0; // тоже уходит на минус
- Сообщения: 2089
- Зарегистрирован: Вс июн 19, 2016 09:32:03
[uquote="dm211",url="/forum/viewtopic.php?p=3309450#p3309450"]Почему переменная, обьявленная как unsigned char уходит на минус?[/uquote]
Как переменная, обьявленная как unsigned char, может уйти на минус?
Как переменная, обьявленная как unsigned char, может уйти на минус?
- Реклама
Что значит "уходит в минус"?
Ну и напоминаю: по умолчанию все операнды выражения автоматически приводятся к int (или к типу более "широкого" операнда). поэтому при сравнении x с 1 и переменная х, и константа 1 становятся ЗНАКОВЫМИ. со всеми вытекающими.
Ну и напоминаю: по умолчанию все операнды выражения автоматически приводятся к int (или к типу более "широкого" операнда). поэтому при сравнении x с 1 и переменная х, и константа 1 становятся ЗНАКОВЫМИ. со всеми вытекающими.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 208
- Зарегистрирован: Вс дек 10, 2006 19:26:13
и в каком месте вашего вопроса это происходит?dm211 писал(а):уходит на минус при
x--;
беззнаковая переменная у вас не уходит в минус, она становится наоборот, слишком большой
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 2089
- Зарегистрирован: Вс июн 19, 2016 09:32:03
[uquote="dm211",url="/forum/viewtopic.php?p=3309462#p3309462"]Забыл написать, уходит на минус при
x--;[/uquote]
Ты понимаешь что такое беззнаковая переменная? Если она равно 0 и отнять 1, то получим 255.
x--;[/uquote]
Ты понимаешь что такое беззнаковая переменная? Если она равно 0 и отнять 1, то получим 255.
- Сообщения: 208
- Зарегистрирован: Вс дек 10, 2006 19:26:13
Ну на табло у меня минус показывает
sprintf
А я хочу, чтобы ниже нуля был ноль, тогда вопрос-что делать?
А я хочу, чтобы ниже нуля был ноль, тогда вопрос-что делать?
так это у вас формат в sprintf ЗНАКОВЫЙ, небось, %d - угадал? напишите %u и будет без минусаdm211 писал(а):Ну на табло у меня минус показывает sprintf
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 2089
- Зарегистрирован: Вс июн 19, 2016 09:32:03
[uquote="dm211",url="/forum/viewtopic.php?p=3309469#p3309469"]А я хочу, чтобы ниже нуля был ноль, тогда вопрос-что делать?[/uquote]
Сначала проверяй на 0, потом минусуй, а не наоборот.
Сначала проверяй на 0, потом минусуй, а не наоборот.
- Сообщения: 208
- Зарегистрирован: Вс дек 10, 2006 19:26:13
[uquote="ARV",url="/forum/viewtopic.php?p=3309473#p3309473"]
[/uquote]
самодельный sprintf, но это где то там, с %u не уходит на минус, а на большое число..
Добавлено after 1 hour 8 minutes 25 seconds:
[uquote="Reflector",url="/forum/viewtopic.php?p=3309476#p3309476"]Сначала проверяй на 0, потом минусуй, а не наоборот.[/uquote]
Помогло,спасибо.
Век живи-век учись.
так это у вас формат в sprintf ЗНАКОВЫЙ, небось, %d - угадал? напишите %u и будет без минусаdm211 писал(а):Ну на табло у меня минус показывает sprintf
самодельный sprintf, но это где то там, с %u не уходит на минус, а на большое число..
Добавлено after 1 hour 8 minutes 25 seconds:
[uquote="Reflector",url="/forum/viewtopic.php?p=3309476#p3309476"]Сначала проверяй на 0, потом минусуй, а не наоборот.[/uquote]
Код: Выделить всё
if(x!=0) x--;
Век живи-век учись.
- Сообщения: 359
- Зарегистрирован: Чт авг 08, 2013 01:06:54
Доброго времени суток. Что возвращает данное выражение ?
Код: Выделить всё
return (UART_RxHead != UART_RxTail);
0 - если выражение ложно, не 0 - если истинно (обычно 1)
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
- Сообщения: 359
- Зарегистрирован: Чт авг 08, 2013 01:06:54
- Сообщения: 359
- Зарегистрирован: Чт авг 08, 2013 01:06:54
Что делает следующая строка ?
А еще лучше, какое ключевое слово гуглить, чтобы научиться понимать такие строки ?
Код: Выделить всё
uint8_t segments = digit < 10 ? _digit2segments[digit] : 0x00;
в переменную segments помещается значение _digit2segments[digit], если digit меньше 10, а если больше, то в segments помещается 0.Пока_без_кота писал(а):Что делает следующая строка ?
тернарный оператор ? (это сам оператор, а не вопрос в конце предложения)Пока_без_кота писал(а):какое ключевое слово гуглить, чтобы научиться понимать такие строки ?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!


