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

Хммм, в C нет strict aliasing? В плюсах же например

так низзя:

float Q_rsqrt( float number )
{
long i;
float x2, y;
const float threehalfs = 1.5F;

x2 = number * 0.5F;
y = number;
i = * ( long * ) &y; // evil floating point bit level hacking
i = 0x5f3759df - ( i >> 1 ); // what the fuck?
y = * ( float * ) &i; //вот про это
...
`

17 ответов

12 просмотров

в С тоже так нельзя...

Здесь есть корректная реализация с точки зрения современного С

Alexander-N Автор вопроса
🐈
Здесь есть корректная реализация с точки зрения со...

Как корректная. Нельзя же вроде писать в union int, а читать float?

Sergey Skvortsov
В C можно, в C++ нельзя

А если совместить Си и С++, то так можно?, функцию пометить как extern "C" и там union запилить, и эту функцию встроить в плюсы, так можно?

Deathwish
А если совместить Си и С++, то так можно?, функцию...

extern "C" не переключает язык, это исключительно про linkage

Sergey Skvortsov
extern "C" не переключает язык, это исключительно ...

Но в стандарте говорится, что функции помеченные как extern "C", являются Си функциями

Alexander N
Как корректная. Нельзя же вроде писать в union int...

По-моему это в плюсах нельзя, а в си можно

🐈
По-моему это в плюсах нельзя, а в си можно

Нельзя и там и там. Просто Сшникам плевать

Ilya Zviagin
Да ладно...

https://en.cppreference.com/w/c/language/union If the member used to access the contents of a union is not the same as the member last used to store a value, the object representation of the value that was stored is reinterpreted as an object representation of the new type (this is known as type punning).

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

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

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
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
Раз начали говорить про embassy, то присоединюсь со своими парой вопросов. 1) Есть ли сопоставимые аналоги для асинхронного кода в emdebbed? 2) Можно ли внутри задач embassy ...
NI_isx
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта