11
ответов

Цель объединений в C и C++

Я использовал объединения ранее удобно; сегодня я был предупрежден, когда я читал это сообщение и узнал то это объединение кода ARGB {uint32_t цвет; структура componentsTag {uint8_t b;...
вопрос задан: 23 May 2017 02:25
5
ответов

Безопасно каламбурящий символ* для удвоения в C

В программе С открытым исходным кодом я записал, я считываю двоичные данные (записанный другой программой) из файла и произвожу ints, удваивается, и другие различные типы данных. Одна из проблем - то, что этому нужно...
вопрос задан: 23 May 2017 12:30
5
ответов

Строгое искажение указателя: какое-либо решение для определенной проблемы?

Мне вызвали проблему путем нарушения строгого правила искажения указателя. У меня есть тип T, который прибывает из шаблона и некоторого Интервала целочисленного типа того же размера (как с sizeof). Мой код по существу делает...
вопрос задан: 16 July 2012 05:26
5
ответов

Повторно соберите плавание от встроенных байтов

Я работаю с HiTech PICC32 на серии PIC32MX микропроцессоров, но я думаю, что этот вопрос является достаточно общим для любого хорошо осведомленного в C. (Это почти эквивалентно C90 с sizeof (интервал) =...
вопрос задан: 10 February 2010 06:54
4
ответа

Что такое строгое правило псевдонимов?

Отвечая на вопрос о распространенном неопределенном поведении в Си, души более просвещенные, чем я, ссылались на строгое правило псевдонимов. О чем они говорят?
вопрос задан: 15 October 2018 12:57
3
ответа

Исправление для разыменования указателя с перфорацией типа нарушает строгий псевдоним

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

Мнения о трамбовке типа в C++?

Мне любопытно на предмет конвенций для каламбурящих тип указателей/массивов в C++. Вот вариант использования, который я имею в данный момент: Вычислите простую 32-разрядную контрольную сумму по двоичному блобу данных путем обработки его как...
вопрос задан: 10 February 2010 06:20
2
ответа

Можно ли использовать указатель на член структуры для доступа к другому члену той же структуры?

Я пытаюсь понять, как работает наказание типов, когда речь идет о сохранении значения в член структуры или объединения. Стандарт N1570 6.2.6.1 (p6) определяет, что, когда значение сохраняется в ...
вопрос задан: 12 March 2019 09:11
1
ответ

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

Вслед за определенной проблемой, самоответом и комментариями к нему, я хотел бы понять, является ли это надлежащее решение, обходное решение/взлом или просто неправильно. А именно, я переписал код: T x =...;...
вопрос задан: 23 May 2017 12:25
0
ответов

Является ли тип -каламбуром через объединение, не указанное в C99, и стало ли оно специфицированным в C11?

Ряд ответов на вопрос о переполнении стека Получение битов точности IEEE Single -для числа с плавающей запятой предлагает использовать структуру объединения для каламбура типа (, например. :превращение битов числа с плавающей запятой в...
вопрос задан: 23 May 2017 12:02
0
ответов

Является ли reinterpret_cast в основном бесполезным?

I Я прочитал различные предыдущие вопросы об использовании reinterpret_cast, а также прочитал соответствующие формулировки в стандарте C ++. По сути, это сводится к тому, что результат указателя -...
вопрос задан: 23 May 2017 11:45
0
ответов

строгие псевдонимы и выравнивание

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

Приведение, которое нарушает правила строгого псевдонима

У меня есть функция, которая принимает unsigned long * и должна передать ее внешней библиотеке, которая принимает unsigned int *, и на этой платформе unsigned int / long имеют тот же размер. void UpdateVar (unsigned ...
вопрос задан: 21 July 2012 04:21
0
ответов

float bits and strict aliasing

I am trying to extract the bits from a float without invoking undefined behavior. Here is my first attempt: unsigned foo(float x) { unsigned* u = (unsigned*)&x; return *u; } As I ...
вопрос задан: 21 July 2012 04:19
0
ответов

Строгие псевдонимы и std::array против массива в стиле C

При компиляции следующего кода с помощью gcc 4.7 (g++-mp-4.7 (GCC) 4.7.0, созданный с MacPorts на OS X) я получаю, казалось бы, противоречивые результаты. Компилятор не жалуется, когда я пытаюсь переинтерпретировать и...
вопрос задан: 20 July 2012 14:59
0
ответов

Переинтерпретация переносимых данных

Я хочу переинтерпретировать данные одного типа как данные другого типа переносимым способом (C99). Я не говорю о кастинге, я хочу переосмысление некоторых данных. Кроме того, под переносимым я подразумеваю, что это не ...
вопрос задан: 6 May 2012 13:43
0
ответов

Тип каламбура, char[] и разыменование

У меня есть структура, предназначенная для хранения определенных пользователем данных (например, из плагина). У него есть такой char[] с заданным максимальным размером для хранения этих данных. структура А { // другие члены опущены // ...
вопрос задан: 3 April 2012 01:07
0
ответов

Как безопасно выполнять набор текста во встроенной системе

Наша команда в настоящее время использует некоторый перенесенный код из старой архитектуры в новый продукт, основанный на платформе ARM Cortex M3, с использованием адаптированной версии GCC 4.5.1. Мы читаем данные из ...
вопрос задан: 25 January 2012 23:18
0
ответов

Placement-new vs gcc 4.4.3 strict- правила псевдонима

У меня есть код, который я успешно использую в течение нескольких лет для реализации «объекта вариантного типа»; то есть объект C ++, который может содержать значения различных типов, но использует только (приблизительно) ...
вопрос задан: 23 November 2010 23:02