Лучшие type-punning вопросы ИТ разработчиков

  • 19 голосов
  • 4 ответа
  • 0 просмотров
4 ответа

строгое наложение и выравнивание

Мне нужен безопасный способ для псевдонима между произвольными типами POD, в соответствии с ISO-C ++ 11, явно учитывая 3.10 / 10 и 3.11 из n3242 или более поздней версии. Здесь много вопросов о строгом псевдониме, большинство из которых касаются ...

Задан 01 Apr 2012, 12:34 от cooky451
  • 11 голосов
  • 5 ответов
  • 0 просмотров
5 ответов

Безопасно пробивая символ *, чтобы удвоить в C

В открытом исходном кодеПрограмма, которую я написал [http://honeypot.net/project/pgdbf]Я читаю двоичные данные (записанные другой программой) из файла и выводю целые, двойные и другие разные типы данных. Одна из сложностей заключается в том, что ...

Задан 21 Oct 2008, 15:18 от Kirk Strauser
  • 8 голосов
  • 2 ответа
  • 0 просмотров
2 ответа

Строгий псевдоним указателя: является ли доступ через «изменчивый» указатель / ссылку решением?

По пятамконкретная проблема, ответ на свой вопрос и комментарии к нему, я хотел бы понять, если это правильное решение, обходной путь / взломать или просто н...

Задан 05 Jun 2010, 19:50 от doublep
  • 11 голосов
  • 1 ответ
  • 0 просмотров
1 ответ

Общее хранилище на основе char [] и исключение UB, связанных со строгим псевдонимом

Я пытаюсь создать шаблон класса, который объединяет несколько типов в достаточно большой массив символов и позволяет получить доступ к данным в виде отдельны...

Задан 13 Jun 2012, 08:53 от dirkgentlymitchnull
  • 21 голос
  • 2 ответа
  • 0 просмотров
2 ответа

Этот метод, конечно, будет производить вывод, специфичный для порядка следования байтов вашей машины.

аюсь извлечь биты из числа с плавающей точкой, не вызывая неопределенного поведения. Вот моя первая попытка:

Задан 01 Dec 2010, 19:40 от fredoverflow
  • 56 голосов
  • 4 ответа
  • 0 просмотров
4 ответа

Не определено ли определение типа через объединение в C99 и стало ли оно указанным в C11?

Количество ответов на вопрос переполнения стекаПолучение битов одинарной точности IEEE для поплавка предложить использовать

Задан 23 May 2017, 12:02 от Communitysfstewman
  • 8 голосов
  • 2 ответа
  • 0 просмотров
2 ответа

Строгий псевдоним C ++, когда не используется указатель, возвращаемый путем размещения

Может ли это привести к неопределенному поведению? uint8_t storage[4]; // We assume storage is properly aligned here. int32_t* intPtr = new((void*)storage) int32_t(4); // I know this is ok: int32_t value1 = *intPtr; *intPtr = 5; // But can one ...

Задан 08 Jan 2014, 00:26 от rsp1984
  • 6 голосов
  • 3 ответа
  • 0 просмотров
3 ответа

Буферы разделяемой памяти в C ++ без нарушения строгих правил наложения имен

Я борюсь с реализацией буфера совместно используемой памяти без нарушения строгих правил псевдонимов C99. Предположим, у меня есть некоторый код, который обрабатывает некоторые данные и должен иметь «чистую» память для работы. Я мог бы написать ...

Задан 04 Sep 2013, 21:55 от rsp1984
  • 721 голос
  • 11 ответов
  • 0 просмотров
11 ответов

What is the strict aliasing rule?

Когда спрашиваешь ообщее неопределенное поведение в C [https://stackoverflow.com/questions/98340/what-are-the-common-u ndefinedunspecified-behavior-for-c-that-you-run-into]Души более просвещенные, чем я говорил о строгом правиле псевдонимов. О ...

Задан 19 Sep 2008, 01:30 от Benoit
  • 24 голосов
  • 6 ответов
  • 0 просмотров
6 ответов

, Есть и другие очень хорошие вопросы, и мы также отвечаем здесь на эту тему.

ой конкретной функции C ++ у меня есть указатель на большой буфер с плавающей точкой, который я хочу временно использовать для хранения половины числа двойников. Есть ли способ использовать этот буфер как пустое место для хранения двойников, что ...

Задан 11 Jul 2018, 15:35 от André Offringa
  • 23 голосов
  • 7 ответов
  • 0 просмотров
7 ответов

Как правильно набирать поплавок для типа int и наоборот?

Код ниже выполняет быструю операцию обратного квадратного корня с помощью некоторых битовых хаков. Алгоритм, вероятно, был разработан Silicon Graphics в начале 1990-х годов и появился в Quake 3.больше ...

Задан 22 Jul 2013, 14:18 от plasmacel
  • 2 голосов
  • 3 ответа
  • 0 просмотров
3 ответа

 немного больше!

я есть некоторый код, который использует типизацию, чтобы избежать необходимости вызывать конструктор и деструктор члена "объекта", если / пока не потребуется использовать объект. Это работает нормально, но под g ++ 4.4.3 я получаю это страшное ...

Задан 10 Jun 2011, 23:35 от Jeremy Friesner
  • 7 голосов
  • 5 ответов
  • 0 просмотров
5 ответов

Переосмыслите структуру с элементами того же типа, что и массив, стандартным образом [duplicate]

На этот вопрос уже есть ответ здесь:Приведение двойного массива к структуре двойников 6 ответовВ различных математических кодах 3d я иногда сталкиваюсь с чем...

Задан 01 Jan 2017, 21:24 от yuri kilochek
  • 23 голосов
  • 7 ответов
  • 0 просмотров
7 ответов

Как правильно набирать поплавок для типа int и наоборот?

Код ниже выполняет быструю операцию обратного квадратного корня с помощью некоторых битовых хаков. Алгоритм, вероятно, был разработан Silicon Graphics в нача...

Задан 22 Jul 2013, 12:18 от plasmacel
  • 23 голосов
  • 6 ответов
  • 0 просмотров
6 ответов

Исправлена ошибка, из-за которой разыменовываемый указатель типа наказывался нарушением псевдонимов

Я пытаюсь исправить два предупреждения при компиляции конкретной программы с использованием GCC. Предупреждения: предупреждение: разыменование указателя типа-наказание нарушит правила строгого псевдонима [-Wstrict-aliasing] и два ...

Задан 11 Jan 2012, 18:28 от BlankFrank