Ключевое слово на различных языках программирования, синтаксис которых подобен или полученный из C (C++, C#, Быстро, Идут, Ржавчина, и т.д.). Используйте определенный тег языка программирования для расчлененных вопросов, включающих использование 'структуры' как синтаксис, и семантика может быть языковозависимой. Ключевое слово определяет или объявляет тип данных, состоявший из других типов данных. У каждого члена структуры есть ее собственная область памяти (в противоположность 'объединению', участники которого совместно используют единственную область памяти).

A struct состоит из последовательности имен полей и их типов (struct участники), например:

struct s { int *i; // pointer to an int char *s; // pointer to a char double d; // a double int (*pFunc)(char *, int); // pointer to a function }; 

A struct может также содержать битовые поля для разрешения обращения памяти разрядного уровня:

struct bits { unsigned int b1 : 1; unsigned int b2 : 1; unsigned int b3 : 1; unsigned int b4 : 1; unsigned int b5 : 1; unsigned int b6 : 1; unsigned int b7 : 1; unsigned int b8 : 1; }; 

Каждый член a struct имеет его собственную область памяти в противоположность a union в котором участники совместно используют ту же область памяти.

Синтаксис для определения/объявления a struct а также что возможно включать в a struct определение/объявление варьируется между различными языками стиля C, которые используют ключевое слово (например, функции членства, не позволенные в C, но находятся в C++, хотя оба позволяют указатель на функцию).

Синтаксис для определения и использования a struct определить/объявить переменные может варьироваться немного между различными языками программирования стиля C ( s myVar; по сравнению с struct s myVar;)

Динамические языки обычно используют некоторую форму ассоциативного массива вместо structs. Языковая семья Паскаля относится к этим типам даты как records.

Ссылки