Описание тега anonymous-struct

In ISO C11 (and some extensions of ISO C++) an anonymous struct is a data member of struct type, whose members are treated as members of the enclosing struct or union. It is declared as `struct { /* members */ };`.
1 ответ

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

Я слышал противоречивые мнения о том, в какой степени стандарты C гарантируют согласованность структуры структуры. Аргументы в ограниченной степени упоминают строгие правила наложения имен. Например, сравните эти два ответа: /questions/31635095/priv…
25 мар '18 в 03:05
2 ответа

Вложенные анонимные структуры в c11

Я пишу интерпретатор CHIP-8 в c11 для забавы, и я подумал, что было бы здорово декодировать коды операций, используя анонимные структуры. В идеале у меня был бы тип, где, если бы у меня был код операции opcode_t code = {.bits = 0xABCD} он должен име…
19 авг '17 в 05:22
2 ответа

Инициализаторы скобок или равных в анонимной структуре не работают на VS2013

Инициализаторы Brace-or-equal в анонимной структуре внутри структуры не выполняют свою работу над выводом, созданным VS2013. Там код: #include <iostream> #include <cstdint> struct S { struct { uint64_t val = 0; }anon; }; int main() { S s…
1 ответ

Определить анонимную структуру в вызове функции

Я уже могу сделать это: struct { uint64 _i; bool operator()(uint64 elem) { const uint64 i = _i++; return elem & i; // Just an example } } filter; // Templated function Array<uint64> clone = Containers::filter(array, filter); Я хотел бы зна…
30 ноя '18 в 09:14
1 ответ

C++ анонимные структуры

Я использую следующее объединение, чтобы упростить байтовые, полубайтовые и битовые операции: union Byte { struct { unsigned int bit_0: 1; unsigned int bit_1: 1; unsigned int bit_2: 1; unsigned int bit_3: 1; unsigned int bit_4: 1; unsigned int bit_5…
24 апр '13 в 21:30
2 ответа

Это лягушка? анонимные структуры для typedef

У меня был этот typedef для структуры вроде typedef struct { double x, y; } ACVector; и когда я смотрю на экземпляры этого в отладчике, я получаю очень странный вывод что-то вроде (lldb) p _translation (ACVector) $1 = { (double) x = -5503.61 (double…
19 сен '12 в 11:58
1 ответ

Импорт структур как вложенных, анонимных структур в объединении с использованием C++

Пожалуйста, рассмотрите следующие "неизменяемые" объявления: typedef struct T_MESSAGE { unsigned int uiTimestamp; unsigned char ucDataType; unsigned int uiDataSize; unsigned char aucData[1024]; } TT_MESSAGE; typedef struct T_SENSORDATA_HEADER { unsi…
05 дек '18 в 07:42
1 ответ

C11 - преобразовать указатель на структуру в анонимный первый член структуры

Стандарт C гласит: Указатель на объект структуры, соответствующим образом приведенный, указывает на его начальный элемент (или, если этот элемент является битовым полем, то на модуль, в котором он находится), и наоборот. Есть ли какой-либо возможный…
13 янв '15 в 16:37
3 ответа

Анонимная структура C с объявлением

Учитывая следующее определение: struct { int x; int y; } point; void main() { ... } Вы объявляете переменную "точка" типа "анонимная структура", есть ли способ объявить другую переменную того же типа вне определения структуры (возможно, в основной ф…
23 май '13 в 23:25
1 ответ

Модуль C с использованием союзов и анонимных структур

Я использую анонимные структуры в союзах, чтобы быстро получить% b. Знаете ли вы какой-либо другой способ получить% b, не используя степени 2 для b. включить список: #include<stdio.h> #include<stdlib.h> #include<time.h> и деклараци…
13 июл '12 в 08:11
1 ответ

Не могу пройти мимо "ошибка: пропущенные скобки вокруг инициализатора"

Получение следующей ошибки при выполнении анонимной структуры ниже: error: missing braces around initializer [-Werror=missing-braces] Если я поменяю 'message' на статическую строку, такую ​​как 'lalala', это прекрасно работает. typedef struct { /* p…
16 фев '14 в 16:22
2 ответа

Предупреждение Doxygen при использовании макроса внутри анонимной структуры

У меня есть структура, и по соглашению мне нужно использовать определенный макрос для объявления переменной этого типа: структура: struct basic_struct { int a; int b; }; макрос: #define BASIC_VAR(var_name) struct basic_struct var_name Я столкнулся с…
30 авг '17 в 16:16
4 ответа

Что означает этот указатель определения структуры типа (в C)?

В главе 6 K&R; декларация упоминается следующим образом: struct{ int len; char *str; } *p; Я не мог понять, на какую структуру указывает указатель p и является ли такое определение указателя действительным, потому что во всех других примерах, привед…
1 ответ

Как заменить безымянную структуру, объединение, класс их именованными эквивалентами?

Я выполняю рефакторинг своего проекта и хочу избавиться от всех анонимных пространств имен, включая классы, структуры, объединения. Я хочу заменить их как можно проще их именованными эквивалентами. Насколько я знаю, эквивалент для анонимного простра…
28 фев '13 в 13:28
1 ответ

Закрытый модификатор C++ игнорируется во вложенной анонимной структуре

Следующий пример кода прекрасно компилируется в Visual C++: class Test { private: struct { struct { int privateData; }; }; }; int main(int, char **) { Test test; test.privateData = 0; return 0; } Но почему? Я ожидаю ошибку компилятора, потому что pr…
1 ответ

Структура структуры MSVC изменяется при переносе гибкого массива в анонимную структуру?

Я смотрю информацию о макете для следующих структур, используя godbolt: struct Foo1 { int size; void *data[]; }; struct Foo2 { int size; struct { void *data[]; }; }; Я ожидал макет для обеих структур Foo1 а также Foo2 быть таким же. Из того, что я п…
1 ответ

Предупреждение при использовании анонимных структур в матричном типе 4D

Я пытаюсь определить 4-мерный тип матрицы в C (для использования в среде iOS/ObjC), который инкапсулируется (а не в пустой массив), и к которому можно получить доступ, используя индексированные значения или через именованные члены структуры. Это моя…
04 фев '12 в 00:55
0 ответов

Компилятору не хватает места в куче на этапе 2 - анонимное объединение, анонимные структуры, конструктор constexpr, статический член

У меня есть код, который не удается скомпилировать с Visual Studio 2015 Community Edition со следующей ошибкой: фатальная ошибка C1002: компилятору не хватает места в куче на этапе 2 Код struct Int { int i; }; struct B { union { struct { int x; }; s…
05 сен '16 в 00:14
2 ответа

C++ анонимная структура необычное определение

Глядя на какой-то скрипт.h я увидел это: struct { int resource; } SimulRes[SIMULRES]; Где SIMULRES определяется выше как: #define SIMULRES 50 Я предполагаю, что это анонимная структура, но я привык видеть, что она определена внутри именованной струк…
28 июл '17 в 20:53
1 ответ

Различные битовые отображения с анонимными структурами

Я хотел бы реализовать различные отображения для некоторого количества битов. Я пришел с этим решением, которое работает достаточно хорошо для меня: union myBits{ // constructors struct{ // Mapping 1 uint16_t a : 8, b : 8; }; struct{ // Mapping 2 ui…
19 май '17 в 14:28