169 похожих чатов

Граждане сишники, кто знает, будет ли следующий код uint64_t a =

MAGIC_NUM;
uint8_t *b = &a;
printf("%d", b[5]);

уб, или нет? Интересуют стандарты С99 и С11

22 ответов

26 просмотров

не UB, если uint8_t это 1 байт, но вывод на разных архитектурах может быть разный

Ivan-Dereviankin 🇺🇦 Автор вопроса

Character type это и char, и unsigned char?

ой, мозг нарисовал мне 64 бита как 4 байта, извините

используйте unsigned char вместо uint8_t, и стандарт гарантирует вам точно то, что вы и хотите без UB

Ivan Dereviankin 🇺🇦
Character type это и char, и unsigned char?

да, но скорее всего ваша реализация просто указывает на unsigned char: typedef unsigned char uint8_t;

Только endianness может быть разным, и поэтому побайтовый просмотр объектов может дать разный ответ. Код же с битовой маской даст гарантированный ответ вне зависимости от endianness

Т
А как часто такое встречается?

В смысле, как часто встречаются little-endian/big-endian?

multi processing
В смысле, как часто встречаются little-endian/big-...

Ну просто все что я видел ток на одном сидят, хз

Т
Ну просто все что я видел ток на одном сидят, хз

значит на одной архитектуре сидят)

Qqqq
значит на одной архитектуре сидят)

Та у меня что ток в руках не было, но везде одно и тоже

А че не на дишке

Ivan-Dereviankin 🇺🇦 Автор вопроса
Туночка️ ᅠᅠ️
А че не на дишке

Да мне надо байтики перекладывать, си проще в этом плане

Aiwan \ (•◡•) / _bot
тогда уж асм

А в ручную можно? Там щипцами?

Ivan-Dereviankin 🇺🇦 Автор вопроса
Aiwan \ (•◡•) / _bot
тогда уж асм

Я не настолько ещё упоролся по оптимизации... Но да, пока прототип на Си, а релизная версия будет на асме

Цо ти пишешь

Ivan-Dereviankin 🇺🇦 Автор вопроса
Туночка️ ᅠᅠ️
Цо ти пишешь

Может будет смешно звучать, но хочу попробовать свой алгоритм шифрования придумать (уже) и реализовывать (ещё не доделал). Оно в наше время конечно уже очень сложно сделать что то конкурентноспособое, ведь уже есть и сальса, и аес, и чача, и множество других... Но ведь, с другой стороны, не боги горшки лепили, правда?

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта