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

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

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

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

22 ответов

29 просмотров

не 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 🇺🇦 Автор вопроса
Туночка️ ᅠᅠ️
Цо ти пишешь

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта