Обсуждаем контроллеры компании Atmel.
Ср ноя 30, 2022 21:26:11
ну и? оба варианта могут быть? далее какой вывод?
Ср ноя 30, 2022 21:54:30
Выводы сами делайте, я всю информацию для этого дал.
Чт дек 01, 2022 07:47:52
ваша информация, как в том бородатом анекдоте: абсолютно точная и совершенно бесполезная. вам достаточно в подписи написать "лучше всех знаю стандарт С" и больше ничего не писать - эффект будет ровно тот же
Чт дек 01, 2022 09:17:23
Человек разумный скажет спасибо и примет к сведению, а не будет препинаться до усрачки.
Чт дек 01, 2022 11:38:01
причем тут препирание? я так и не понял сути, которую вы оставили мне искать самостоятельно. если бы я мог справиться самостоятельно с проблемой, я б молчал.
Добавлено after 1 minute 7 seconds:
мне нечего принимать к сведению, кроме того, что вы знаете стандарт Си лучше. но пользы для меня в этом нет
Чт дек 01, 2022 11:46:10
Читаем 6.3.1.1 и обнаруживаем, что может быть как int, так и unsigned int. Что примеры по моей ссылке и подтверждают.
оба варианта могут быть?
я так и не понял сути, которую вы оставили мне искать самостоятельно.
Всё вы прекрасно поняли.
если бы я мог справиться самостоятельно с проблемой, я б молчал.
Но предпочли включить дурачка и заболтать вопрос.
Чт дек 01, 2022 17:40:55
ну так оба варианта могут быть или один из?
чем тратить силы на подбор цитат, не лучше бы один раз дать конкретный ответ?
Чт дек 01, 2022 18:06:13
Куда уж конкретней? Во-первых,
Читаем 6.3.1.1 и обнаруживаем, что может быть как int, так и unsigned int.
Во-вторых, ссылка на стандарт с конкретным пунктом.
В-третьих, ссылка на код, демонстрирующий это.
Удивительно, вы дважды привели в качестве аргумента integer promotions и не удосужились прочитать в стандарте что же это такое. Давайте, я сделаю это за вас.
If an int can represent all values of the original type (as restricted by the width, for a bit-field), the
value is converted to an int; otherwise, it is converted to an unsigned int. These are called the
integer promotions.
Чт дек 01, 2022 21:41:43
ладно, будем считать, что я по-английски бегло читаю.
итак, если значение влезает в int, то... вопрос: разве разность двух int8 может не влезть в int (для AVR он 16-битный)?
Добавлено after 2 minutes 9 seconds:
каждое int8, как я понимаю, превращается в int перед вычислением разности, но по модулю оба числа в 256 раз меньше MaxInt. следовательно, может ли разность оказаться uint-ом?
Добавлено after 6 minutes 38 seconds:
и, если может, то при каких условиях?
Сб дек 03, 2022 10:05:32
молчание затянулось...
Сб дек 03, 2022 20:48:29
А asm-код можно глянуть, где "это" там превращается и как?
Сб дек 03, 2022 20:52:21
после оптимизатора в асм код глядеть бесполезно... меня теория интересует.
Вс дек 04, 2022 14:39:48
Человек разумный скажет спасибо и примет к сведению, а не будет препинаться до усрачки.
Нет, мы будем препинаться! Ибо мы не привыкли отступать. "Это что ж это меня лохом должны считать! Нет. Ни в коем случае!" Сравните с нашими руководителями, похоже?(( Ужос! И ППЦ!
Вс дек 04, 2022 21:51:12
ARV писал(а):после оптимизатора в асм код глядеть бесполезно
Откуда оптимизатор может знать? Ведь для хранения переменной, которая может принимать всего два значения, к примеру 0 и 1, я могу задать тип переменной unsigned long int.
Вт дек 06, 2022 18:23:20
оптимизатор знает
во-первых, для переменных long и правило другое, речь-то шла о переменных "короче" int - так вот, они приводятся к "полноразмерному" int (хотя некоторые утверждают, что может и к uint) - и потом в вычислениях оптимизатор выбрасывает работу с "лишним" байтом
Вт дек 06, 2022 20:52:50
Вы меня не поняли.
Хорошо, пусть будет int или uint, и я буду пихать в эту переменную из вне какие нибудь данные, откуда компилятор будет знать что я буду запихивать, "короче" int или "длиннее"?
Так будет asm-код или нет? В stm32 я не силен в asm, но тут то я могу asm потрясти.
Вт дек 06, 2022 21:31:36
я буду пихать в эту переменную из вне какие нибудь данные, откуда компилятор будет знать что я буду запихивать, "короче" int или "длиннее"?
По типу данных. Не?
Так будет asm-код или нет?
У вас компилятор отобрали?
А вот такого от GCC на -O3 я не ожидал совсем
Вт дек 06, 2022 21:44:20
VladislavS писал(а):У вас компилятор отобрали?
Не вижу, где int превращается в uint.
Добавлено after 5 minutes 19 seconds:VladislavS, PINB он r8, но этот файлик доступен, его не сложно превратить в r16. Не пойдет.
Интересует, на каком этапе int превращается в uint.
Вт дек 06, 2022 21:44:45
А вы об этом не спрашивали.
Вт дек 06, 2022 21:49:13
Но как? Двумя тремя сообщениями выше.
Меня то же интересует, на каком этапе вот это
VladislavS писал(а):Читаем 6.3.1.1 и обнаруживаем, что может быть как int, так и unsigned int.
может разделятся?
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.