Вопросы по С/С++ (СИ)

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Друг Кота
Аватара пользователя
Сообщения: 7382
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Сообщение uldemir »

Вероятнее всего, что тип registerSetting_t состоит из двух элементов. Был бы int - было бы сообщение об ошибке. не?
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1132
Зарегистрирован: Пт фев 16, 2007 14:18:20
Откуда: Новосибирск

Сообщение Chip115 »

Не могу разкурочить этот тип. Это выдал кодогенератора, мол заготовка. Определение этого типа нет.
Теория — это когда все известно, но ничего не работает. Практика — это когда все работает, но никто не знает почему. Мы же объединяем теорию и практику: ничего не работает… и никто не знает почему!
© Альберт Эйнштейн
Контактная информация:
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 353
Зарегистрирован: Вс янв 19, 2014 22:41:55

Сообщение Siarzhuk »

[uquote="Chip115",url="/forum/viewtopic.php?p=3295062#p3295062"]Это выдал кодогенератора, мол заготовка. Определение этого типа нет.[/uquote]
Если код собирается - его не может не быть. Гляньте в препроцессорный выхлоп - возможно для этого придётся включить временно опцию preprocess only в настройках проекта. В папочке с временными файлами компиляции загляните в разные типы - они или *.i или *.pre, иногда вместо объектников - у разных тулчейнов по разному.
Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR! ;-)
Прорезались зубы
Сообщения: 208
Зарегистрирован: Вс дек 10, 2006 19:26:13

Сообщение dm211 »

Почему переменная, обьявленная как unsigned char уходит на минус?

Код: Выделить всё

unsigned char x;

if(x<0) x=0; // так компилятор ругается

if(x<=0) x=0; // уходит на минус

if(x==0) x=0; // тоже уходит на минус

if(x<1) x=0;   // тоже уходит на минус
Это в IAR для ARM.
Реклама
Эиком - электронные компоненты и радиодетали
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="dm211",url="/forum/viewtopic.php?p=3309450#p3309450"]Почему переменная, обьявленная как unsigned char уходит на минус?[/uquote]
Как переменная, обьявленная как unsigned char, может уйти на минус?
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18787
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Что значит "уходит в минус"?
Ну и напоминаю: по умолчанию все операнды выражения автоматически приводятся к int (или к типу более "широкого" операнда). поэтому при сравнении x с 1 и переменная х, и константа 1 становятся ЗНАКОВЫМИ. со всеми вытекающими.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Друг Кота
Сообщения: 3092
Зарегистрирован: Пн апр 06, 2015 11:01:53
Откуда: москва, уфа

Сообщение arkhnchul »

что значит "уходит на минус"?
Прорезались зубы
Сообщения: 208
Зарегистрирован: Вс дек 10, 2006 19:26:13

Сообщение dm211 »

Забыл написать, уходит на минус при
x--;
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18787
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

dm211 писал(а):уходит на минус при
x--;
и в каком месте вашего вопроса это происходит?

беззнаковая переменная у вас не уходит в минус, она становится наоборот, слишком большой :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Друг Кота
Сообщения: 3092
Зарегистрирован: Пн апр 06, 2015 11:01:53
Откуда: москва, уфа

Сообщение arkhnchul »

еще раз: что вы называете "уходит на минус"?
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="dm211",url="/forum/viewtopic.php?p=3309462#p3309462"]Забыл написать, уходит на минус при
x--;[/uquote]
Ты понимаешь что такое беззнаковая переменная? Если она равно 0 и отнять 1, то получим 255.
Прорезались зубы
Сообщения: 208
Зарегистрирован: Вс дек 10, 2006 19:26:13

Сообщение dm211 »

Ну на табло у меня минус показывает :oops: sprintf
А я хочу, чтобы ниже нуля был ноль, тогда вопрос-что делать?
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18787
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

dm211 писал(а):Ну на табло у меня минус показывает sprintf
так это у вас формат в sprintf ЗНАКОВЫЙ, небось, %d - угадал? напишите %u и будет без минуса :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="dm211",url="/forum/viewtopic.php?p=3309469#p3309469"]А я хочу, чтобы ниже нуля был ноль, тогда вопрос-что делать?[/uquote]
Сначала проверяй на 0, потом минусуй, а не наоборот.
Прорезались зубы
Сообщения: 208
Зарегистрирован: Вс дек 10, 2006 19:26:13

Сообщение dm211 »

[uquote="ARV",url="/forum/viewtopic.php?p=3309473#p3309473"]
dm211 писал(а):Ну на табло у меня минус показывает sprintf
так это у вас формат в sprintf ЗНАКОВЫЙ, небось, %d - угадал? напишите %u и будет без минуса :)))[/uquote]
самодельный 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);
Друг Кота
Аватара пользователя
Сообщения: 7382
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Сообщение uldemir »

0 - если выражение ложно, не 0 - если истинно (обычно 1)
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Потрогал лапой паяльник
Сообщения: 359
Зарегистрирован: Чт авг 08, 2013 01:06:54

Сообщение Пока_без_кота »

Спасибо.
Потрогал лапой паяльник
Сообщения: 359
Зарегистрирован: Чт авг 08, 2013 01:06:54

Сообщение Пока_без_кота »

Что делает следующая строка ?

Код: Выделить всё

uint8_t segments = digit < 10 ? _digit2segments[digit] : 0x00;
А еще лучше, какое ключевое слово гуглить, чтобы научиться понимать такие строки ?
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18787
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Пока_без_кота писал(а):Что делает следующая строка ?
в переменную segments помещается значение _digit2segments[digit], если digit меньше 10, а если больше, то в segments помещается 0.
Пока_без_кота писал(а):какое ключевое слово гуглить, чтобы научиться понимать такие строки ?
тернарный оператор ? (это сам оператор, а не вопрос в конце предложения)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Ответить

Вернуться в «Разные вопросы по МК»