Результаты поиска по запросу "strict-aliasing"

2 ответа

) и обратно к исходному типу возвращает исходное значение указателя. - конец примечания]

ли (семантическая) разница между возвращаемым значением размещения new и приведенным значением его операнда? struct Foo { ... }; char buffer[...]; Foo *a = new(buffer) Foo; Foo *b = reinterpret_cast<Foo *>(buffer);Есть лиa а такжеb чем-то ...

2 ответа

Этот союз нарушает строгий псевдоним? Как насчет регистров с плавающей запятой

5 ответов

Предупреждение «разыменование типа-наказанного нарушит правила строгого наложения»

ТОП публикаций

1 ответ

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

1 ответ

Это расположение памяти и информирование компилятора. Компилятор может выбрать размещение структуры по выровненному адресу, но это не обязательно будет делать, если структура заменяется всеми содержащимися в ней элементами. Может быть разница в байтах заполнения.

я есть структура X, которая наследует от структуры Base. Тем не менее, в моей текущей настройке, из-за выравнивания, размер X равен 24B: typedef struct { double_t a; int8_t b; } Base; typedef struct { Base base; int8_t c; } X;Чтобы сохранить ...

2 ответа

Правильный, портативный способ интерпретировать буфер как структуру

Контекст моей проблемы в сетевом программировании. Скажем, я хочу отправлять сообщения по сети между двумя программами. Для простоты, давайтеНапример, сообще...

4 ответа

Нарушает ли это приведение указателей строгое правило наложения имен?

Это быстрая реализация с обратным квадратным корнем из Quake III Arena: 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 ...

7 ответов

Разыменование указателя типа наказанного нарушит правила строгого наложения имен

3 ответа

Допустимо ли псевдоним массива char через указатель на int?

Я знаю, что в стандарте явно разрешено следующее:

1 ответ

Доступ к первому полю структуры через приведение C нарушает строгий псевдоним?

Этот код нарушает строгий псевдоним? struct {int x;} a; *(int*)&a = 3Говоря более абстрактно, допустимо ли приведение между различными типами, если примитивные операции чтения / записи являются правильными?