Составители:
Рубрика:
case CHECK: cout << "Оплата чеком: "<< info.check; break;
}
return 0;
}
Объединение часто используют в качестве поля структуры, при этом в структуру
удобно включить дополнительное поле, определяющее, какой именно элемент объеди-
нения используется в каждый момент. Имя объединения можно не указывать, что позво-
ляет обращаться к его полям непосредственно:
#include <iostream.h>
int main()
{
enum paytype {CARD, CHECK};
struct{
paytype ptype;
union{
char card[25];
long check;
};
} info;
... /* присваивание значения info */
switch (info.ptype)
{
case CARD: cout << "Оплата по карте: " << info.card; break;
case CHECK: cout << "Оплата чеком
: " << info.check; break;
}
return 0;
}
Объединения применяются также для разной интерпретации одного и того же би-
тового представления (но, как правило, в этом случае лучше использовать явные опера-
ции преобразования типов). В качестве примера рассмотрим работу со структурой, со-
держащей битовые поля:
struct Options
{
bool centerX:1;
bool centerY:1;
unsigned int shadow:2;
unsigned int palette:4;
};
union
{
unsigned char ch;
Options bit;
}option = {0xC4};
cout << option.bit.palette;
option.ch &= 0xF0; // наложение маски
59
case CHECK: cout << "Оплата чеком: "<< info.check; break;
}
return 0;
}
Объединение часто используют в качестве поля структуры, при этом в структуру
удобно включить дополнительное поле, определяющее, какой именно элемент объеди-
нения используется в каждый момент. Имя объединения можно не указывать, что позво-
ляет обращаться к его полям непосредственно:
#include
int main()
{
enum paytype {CARD, CHECK};
struct{
paytype ptype;
union{
char card[25];
long check;
};
} info;
... /* присваивание значения info */
switch (info.ptype)
{
case CARD: cout << "Оплата по карте: " << info.card; break;
case CHECK: cout << "Оплата чеком: " << info.check; break;
}
return 0;
}
Объединения применяются также для разной интерпретации одного и того же би-
тового представления (но, как правило, в этом случае лучше использовать явные опера-
ции преобразования типов). В качестве примера рассмотрим работу со структурой, со-
держащей битовые поля:
struct Options
{
bool centerX:1;
bool centerY:1;
unsigned int shadow:2;
unsigned int palette:4;
};
union
{
unsigned char ch;
Options bit;
}option = {0xC4};
cout << option.bit.palette;
option.ch &= 0xF0; // наложение маски
59
Страницы
- « первая
- ‹ предыдущая
- …
- 57
- 58
- 59
- 60
- 61
- …
- следующая ›
- последняя »
