Запитання з тегом «type-punning»


15
Призначення об'єднань в C і C ++
Раніше я зручніше використовував спілки; сьогодні я насторожився, коли прочитав цей пост і дізнався, що це код union ARGB { uint32_t colour; struct componentsTag { uint8_t b; uint8_t g; uint8_t r; uint8_t a; } components; } pixel; pixel.colour = 0xff040201; // ARGB::colour is the active member from now on // …
254 c++  c  unions  type-punning 

3
Чи можна записати швидку функцію Quake InvSqrt () в Rust?
Це просто для задоволення власної цікавості. Чи є реалізація цього: float InvSqrt (float x) { float xhalf = 0.5f*x; int i = *(int*)&x; i = 0x5f3759df - (i>>1); x = *(float*)&i; x = x*(1.5f - xhalf*x*x); return x; } в Іржі? Якщо він існує, опублікуйте код. Я спробував це і …

5
Профспілки та набивання шрифтів
Я шукав якийсь час, але не можу знайти чіткої відповіді. Багато людей кажуть, що використання профспілок для набору каламбурів - це невизначена та погана практика. Чому це? Я не бачу жодної причини, чому він може робити щось невизначене, враховуючи те, що пам'ять, в яку ви пишете оригінальну інформацію, не буде …
79 c++  c  unions  type-punning 

3
std :: bit_cast з std :: масивом
У своїй нещодавній бесіді «Тип покарання в сучасному C ++» Тимур Домлер сказав, що std::bit_castйого неможливо використати для введення біт floatв «a», unsigned char[4]оскільки масиви стилю C не можуть бути повернуті з функції. Ми повинні або використовувати, std::memcpyабо чекати, поки C ++ 23 (або пізніше), коли щось подібне reinterpret_cast<unsigned char*>(&f)[i]стане …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.