Вопросы с тегом «casting»

Приведение - это процесс, в котором тип объекта явно преобразуется в другой тип, если преобразование разрешено. Этот процесс может привести к изменению стоимости.

6
Почему эта заявка на разыменование предупреждающего указателя типа зависит от компилятора?
Я читал различные сообщения о переполнении стека RE: ошибка разыменовывающего указателя типа. Насколько я понимаю, ошибка, по сути, является предупреждением компилятора об опасности доступа к объекту через указатель другого типа (хотя, похоже, для этого сделано исключение char*), что является понятным и разумным предупреждением. Мой вопрос относится к приведенному ниже коду: …
38 c  pointers  casting 

6
Как правильно преобразовать 2 байта в 16-разрядное целое число со знаком?
В этом ответе , zwol сделал это заявление: Правильный способ преобразования двух байтов данных из внешнего источника в 16-разрядное целое число со знаком - с помощью вспомогательных функций, таких как: #include <stdint.h> int16_t be16_to_cpu_signed(const uint8_t data[static 2]) { uint32_t val = (((uint32_t)data[0]) << 8) | (((uint32_t)data[1]) << 0); return ((int32_t) …

1
Почему в C ++ отличается static_cast <unsigned> от отрицательных чисел, если число постоянное или нет
Какие правила С ++ означают, что равно равно ложно ? Данный: float f {-1.0}; bool equal = (static_cast&lt;unsigned&gt;(f) == static_cast&lt;unsigned&gt;(-1.0)); Например, https://godbolt.org/z/fcmx2P #include &lt;iostream&gt; int main() { float f {-1.0}; const float cf {-1.0}; std::cout &lt;&lt; std::hex; std::cout &lt;&lt; " f" &lt;&lt; "=" &lt;&lt; static_cast&lt;unsigned&gt;(f) &lt;&lt; '\n'; std::cout &lt;&lt; "cf" …
28 c++  casting 

1
Неявное приведение статического типа (приведение) в Haskell
проблема Рассмотрим следующую проблему дизайна в Haskell. У меня есть простой, символический EDSL, в котором я хочу выразить переменные и общие выражения (многомерные полиномы), такие как x^2 * y + 2*z + 1. Кроме того, я хочу выразить некоторые символические уравнения над выражениями, скажем x^2 + 1 = 1, а …

2
Приведение ссылки на функцию с неверным указателем?
Я отслеживаю ошибку в стороннем коде и сузил ее до чего-то вроде. use libc::c_void; pub unsafe fn foo() {} fn main() { let ptr = &amp;foo as *const _ as *const c_void; println!("{:x}", ptr as usize); } При запуске на стабильной версии 1.38.0 выводится указатель на функцию, но бета (1.39.0-бета.6) …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.