Другие языки программирования и технологии

С++. Чем отличается структура от объединения? В каких случаях целесообразнее использовать union, а в каких struct ?

Ruslan Urkutov
Ruslan Urkutov
480
union - Объединение разных типов в одном куске памяти.
union
{
char ch;
int i;
double d;
} var;

var - это одна переменная, которую можно использовать как char (var.ch), как int (var.i) или как double (var.d);

структура это составная переменная, внутри которой есть набор переменных произвольного типа

struct
{
char ch;
int i;
double d;
} var;

var.ch - одна переменная внутри var
var.i - другая переменная внутри var
var.d - третья переменная внутри var

typedef __int64 INT64;
typedef __int32 INT32;
typedef unsigned __int32 UINT32;

union LARGE
{
INT64 QuadPart;
struct
{
UINT32 LowPart;
INT32 HighPart;
};
};

Перечисления содержат ограниченный набор значений

enum
{
a = 0,
b, // b = a+1 = 1
c = 10,
d, // d = c + 1 = 11
e, // e = d + 1 = 12
} ;
Родион Квитко
Родион Квитко
21 360
Лучший ответ
Объединение - это переменные занимающие ОДНУ И ТУжЕ ОБЛАСТЬ ПАМЯТИ. Если в объединении одна переменная инт на 2 байта а вторая масив чар размеров 2 байта то располагаться они будут по одному адресу, следовательно меняешь ченить в масиве - меняется число инт, и наооборот. В структуре по каждую переменныую выделяется своя память. Перечисление удобно тем что каждой канстанте ПОУМОЛЧАНИЮ ВСЕГДА ПРИСВАЕИВАЕТСЯ КАКОЕТО ЧИСЛО которое обычно не меняется в процессое выполнения а исполбзуется для осмысленности. Читай книжки эта тема подробно описана.