The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Microsoft открыл CHERIoT, аппаратное решение для повышения б..."
Отправлено Совершенно другой аноним, 08-Мрт-23 10:03 
> Эй лолки, man 3 printf для начала. С вашим %d вы такие
> забавные.

В данном случае рояля не играет, т.к. unsigned char расширится до unsigned int со значением 255, и всё будет выведено корректно, как Вы знаете, на стек char положить никак нельзя, кладётся (ну или ложится) только словами.

> А builtin это прекрасно но не по стандарту и специфично
> для компилера, увы.

Я в курсе, по стандарту именно как Вы написали - переполнение беззнаковых вполне себе определено.

>[оверквотинг удален]
> начала. Если вы ЭТОМУ uint скармливаете от большого ума - там
> так то и отрицательное число может нарисоваться в принципе. Но вы
> ж сами попросили этим спецификатором рассмотреть вон то, на входе, как
> знаковое. Разумеется конверсия uint -> signed в недрах printf это нечто
> implementation defined.
> Чисто теоретически компилер мог бы и предупредить что вы какую-то хрень printf
> дали. Для некоторых наиболее очевидных даже и предупреждает, но до вот
> этого видимо не добрались еще. Или вы не включили всякие -Wall
> -Wextra -Wconversion чтобы узнать о себе и своих кодинг скилах кое-что
> новое.

$ gcc -Wall -Wextra -Wconversion q.c
q.c: In function 'main':
q.c:3:14: warning: unused parameter 'argc' [-Wunused-parameter]
    3 | int main(int argc, char* argv[])
      |          ~~~~^~~~
q.c:3:26: warning: unused parameter 'argv' [-Wunused-parameter]
    3 | int main(int argc, char* argv[])
      |                    ~~~~~~^~~~~~

$ gcc --version
gcc.exe (MinGW.org GCC Build-2) 9.2.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ gcc -Wall -Wextra -Wconversion q.c
q.c: In function ‘main’:
q.c:3:14: warning: unused parameter ‘argc’ [-Wunused-parameter]
    3 | int main(int argc, char* argv[])
      |          ~~~~^~~~
q.c:3:26: warning: unused parameter ‘argv’ [-Wunused-parameter]
    3 | int main(int argc, char* argv[])
      |                    ~~~~~~^~~~~~

$ gcc --version
gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру