Вопросы по теме 'unions'

Союз - бесполезный анахронизм или полезный олдскульный трюк?
Недавно я наткнулся на отличную книгу о структурах данных " Структуры данных с использованием C "(c) 1991 г. на книжной распродаже в местной библиотеке за всего 2 доллара . Как следует из названия, в книге рассматриваются структуры данных,...
4103 просмотров
schedule 29.07.2022

проблема с quadTree и объединением
у меня есть следующая структура, похожая на дерево квадрантов, в которой каждая ячейка может быть либо внутренним узлом, либо листом. если это лист, он может хранить цвет. если это внутренний узел, он хранит указатели на четырех дочерних элементов...
584 просмотров
schedule 11.04.2022

использование объединения в yacc для структур
Я немного запутался в том, как указать тип члена моей грамматики. Я хочу объявить prog и decls как ASTNode. Я собираюсь использовать эти элементы для добавления в список и т. д. Но yacc не может распознать их как ASTNode, и я получаю ошибки типа....
1779 просмотров
schedule 04.09.2022

Назначение в союзы членов
Скажем, у меня есть класс с членами союза: class ClassX { public: union { StructA * A; StructB * B; }; } Если у меня есть указатели x1 и x2 на разные объекты ClassX, выполните следующие действия: x1->A = x2->A;...
172 просмотров
schedule 13.01.2023

Преимущества использования объединения, когда то же самое можно сделать с помощью struct - C
Мне трудно понять, как использовать union в C. Я прочитал здесь много сообщений на SO по этому вопросу. Но ни один из них не объясняет, почему union предпочтительнее, когда того же можно добиться с помощью структуры. Цитата из K&R В...
8433 просмотров
schedule 29.01.2023

Реализация перечисления и объединения C в Python
Я пытаюсь придумать код C, чтобы перенести его на Python. Код предназначен для чтения проприетарного формата файла двоичных данных. До сих пор это было просто - в основном это были структуры, и я использовал библиотеку struct , чтобы запрашивать...
6080 просмотров
schedule 23.04.2022

Битовые поля в C со структурой, содержащей объединение структур
Хм... почему, когда я печатаю sizeof(struct MyStruct) , для этого кода выводится 3 (вместо 2)? #pragma pack(push, 1) struct MyStruct { unsigned char a : 6; union { struct {...
5931 просмотров
schedule 21.03.2023

Доступ к членам структуры, как если бы они были одним массивом?
У меня есть две структуры со значениями, которые должны вычислять усредненное значение, как в этой упрощенной версии: typedef struct { int v_move, v_read, v_suck, v_flush, v_nop, v_call; } values; typedef struct { int qtt_move, qtt_read,...
21846 просмотров
schedule 10.05.2022

Является ли объединение более эффективным, чем сдвиг в современных компиляторах?
Рассмотрим простой код: UINT64 result; UINT32 high, low; ... result = ((UINT64)high << 32) | (UINT64)low; Превращают ли современные компиляторы это в настоящий сдвиг ствола вверх или оптимизируют его до простой копии в нужное место?...
2089 просмотров

Объединение одного типа в C++
Всякий раз, когда я вижу примеры союзов, они всегда разных типов. Например, из MSDN: // declaring_a_union.cpp union DATATYPE // Declare union type { char ch; int i; long l; float f; double d; } var1; //...
2026 просмотров
schedule 29.08.2022

Конструктор и анонимный союз с членами const
Возможно ли иметь анонимный союз с членами const? У меня есть следующее: struct Bar { union { struct { const int x, y; }; const int xy[2]; }; Bar() : x(1), y(2) {} }; С G++ 4.5 я получаю сообщение об ошибке: error:...
1203 просмотров
schedule 21.09.2022

Удаление псевдонима указателя
Делая это: union{ int * integer; char * character; } u; u.integer = new int; delete u.character; u.integer = new int[5]; delete [] u.character; Я предполагаю, что это не сработает, если какой-либо из этих типов имеет...
617 просмотров
schedule 04.05.2023

союз: странное поведение [c]
Сказано: "Объединение — это особый тип класса, который может одновременно содержать только один нестатический член данных". ( http://en.cppreference.com/w/cpp/language/union ) Но как он может содержать больше одного члена? y имеет 8...
197 просмотров
schedule 17.03.2023

Boost Variant по сути является союзом в c/c++?
Мне интересно, в чем разница между Boost Variant и типом данных union в c/С++. Я знаю, что тип данных union занимает ту же ячейку памяти, а самый большой тип данных в области памяти занимает общий объем используемой памяти, например. union...
3572 просмотров
schedule 01.11.2022

C# структуры pinvoke с объединением и массивами
мне не удается определить правильный код С# для работы с библиотекой С++, которая определяет сложную структуру с объединением и массивами, я продолжаю получать некоторые исключения памяти при выполнении кода С++, и я почти уверен, что это из-за этого....
1417 просмотров
schedule 10.10.2022

Union. Как узнать, какой параметр объединения используется?
У меня есть следующий фрагмент кода: struct sched_param { union { int sched_priority; struct rcost_sched_param rcost_params; }; }; Я хочу знать, какой из двух параметров является «активным». Есть ли способ сделать...
80 просмотров
schedule 04.02.2023

Работа с объединением структур в C
Скажем, у меня есть следующие типы: typedef struct TYPEA { int type; char[12] id; } TYPEA; typedef struct TYPEB { int type; int value; } TYPEB; Я хочу использовать создание объединения этих типов и 'int', чтобы я мог получить...
45914 просмотров
schedule 11.10.2022

Отправка данных через tcp ip с использованием struct и union
Извините за мой плохой английский! Я разрабатываю программу на C для отправки данных через tcp ip. Эта программа должна использовать struct и union следующим образом (я приведу только важную часть кода): ***Сервер, который отправляет данные:...
1330 просмотров
schedule 30.04.2022

Ошибка: переопределение союза
В следующем коде: typedef struct { union U { int a; char b; }U1; }A; typedef struct { union U { int a; char b; }U1; }B; Компилятор выдает ошибку...
1596 просмотров
schedule 31.01.2023

Передача float в качестве аргумента искажает значение
В моей функции main я использую следующий код float f = 32.0; func("test string %f", f); func (это все примеры имен) объявляется следующим образом void func(const char *str, ...); В моей реализации этой функции я использую...
1243 просмотров
schedule 07.01.2023