Вопросы по теме 'type-punning'

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

освободить/удалить объединение malloc/новый массив в C/C++
Я работал и рассматривал возможность использования профсоюза. Я отказался от этого, потому что дизайн действительно требовал структуры/класса, но в конечном итоге это привело к следующему гипотетическому вопросу: Предположим, у вас есть союз,...
3598 просмотров
schedule 22.03.2023

Является ли неопределенным поведением вызов функции с указателями на разные элементы объединения в качестве аргументов?
Этот код выводит разные значения после компиляции с -O1 и -O2 (как gcc, так и clang): #include <stdio.h> static void check (int *h, long *k) { *h = 5; *k = 6; printf("%d\n", *h); } union MyU { long l; int i; }; int main...
253 просмотров

Разрешение перегрузки шаблона функции
Я хотел написать несколько шаблонных функций для обработки каламбура определенным образом, поэтому я придумал эти две функции. Первый берет объект и с помощью каламбура преобразует его в другой. Это гарантирует, что оба типа являются POD и имеют...
444 просмотров

Как работает printf? Почему выход другой?
Рассмотрим эти две программы: #include <stdio.h> int main() { int z = 6.4; printf("%d %d", z, 6.4); return 0; } Выход 6 -1717986918 . #include <stdio.h> int main() { int z = 6.4; printf("%d %d", 6.4, z); return...
233 просмотров
schedule 07.03.2022

Проблема каламбура в C++
У меня есть класс шаблона с bool в качестве параметра шаблона Dynamic<bool> . Независимо от того, является ли параметр истинным или ложным, он имеет точно такие же элементы данных. они просто отличаются своими функциями-членами. Есть одна...
319 просмотров