The OpenNET Project / Index page

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



"Microsoft открыл CHERIoT, аппаратное решение для повышения безопасности кода на языке Си"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Подсказка: Для контроля за появлением новых сообщений - перед выходом жмите "Пометить прочитанным".
. "Microsoft открыл CHERIoT, аппаратное решение для повышения б..." +1 +/
Сообщение от Совершенно другой аноним (?), 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.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Microsoft открыл CHERIoT, аппаратное решение для повышения безопасности кода на языке Си, opennews, 01-Мрт-23, 10:12  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



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

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