Описание тега struct
А 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
};
А 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;
};
Каждый член struct
имеет свою собственную область памяти в отличие от union
в котором члены разделяют одну и ту же область памяти.
Синтаксис для определения / объявления struct
а также то, что можно включить в struct
определение / объявление варьируется между различными языками стиля C, в которых используется ключевое слово (например, функции-члены не разрешены в C, но присутствуют в C++, хотя оба допускают указатель на функцию).
Синтаксис для указания и использования struct
для определения / объявления переменных могут незначительно отличаться между различными языками программирования в стиле C (s myVar;
против struct s myVar;
)
В динамических языках обычно используется некоторая форма ассоциативного массива вместо struct
с. В семействе языков Pascal эти типы дат называютсяrecord
с.