Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Union bits




{

double d;

unsigned char c[sizeof(double)];

};

 

void main()

{

bits ob1;

ob1.d = 15.75;

int i,j;

for(i=0;i<sizeof(double);i++)

{

cout<<"\nБайт "<<i<<" :";

for(j=128;j;j>>=1)

if(ob1.c[i] & j)cout<<"1"; else cout<< "0";

}

}

 

Результат виконання програми приймає наступний вигляд:

 

Байт 0 :00000000

Байт 1 :00000000

Байт 2 :00000000

Байт 3 :00000000

Байт 4 :00000000

Байт 5 :10000000

Байт 6 :00101111

Байт 7 :01000000

 

13.2. Перелічені типи даних (enum)

 

При написанні програм часто виникає потреба визначити декілька іменованих констант, для яких потрібно, щоб всі вони мали різні значення. Для цього зручно скористатися переліченим типом даних, всі можливі значення якого задаються списком цілочисельних констант. Формат:

 

enum [ ім’я_типу ] { список_констант };

 

Ім'я типу задається в тому випадку, якщо в програмі потрібно визначати змінні цього типу. Компілятор забезпечує, щоб ці змінні приймали значення тільки із списку констант. Константи мають бути цілочисельними і можуть ініціалізуватися звичайним способом. За відсутності ініціалізатора перша константа обнуляється, а кожній наступній привласнюється на одиницю більше значення, чим попередній. Приведемо приклад:

 

#include <iostream>

using namespace std;

 

void main()

{

// enum svet{red,amber,green}; // варіант 1

enum svet{red=5,amber=9,green=8}; //варіант 2

 

svet p1 = amber;

switch(p1)

{

case red:

cout<<"red\n";break;

case amber:

cout<<"amber\n";break;

case green:

cout<<"amber\n";break;

}

}

 

У варіанті 1 тип даних svet є цілим типом даних (int) в якому мають місце три перелічені значення. Значення константи red відповідатиме 0, amber – 1, green – 2. Можна явно указати кожній константі своє значення (варіант 2).

Слід зауважити, що тип даних enum еквівалентний типу даних int і можна виконувати всілякі операції між даними типами. Але, якщо до типу даних enum додається змінна типу int – то отриманий результат слід привести до потрібного типу даних, як це зроблено в рядку:

 

svet p1 = (svet)(amber+1);

 

Результатом буде: p1 = 10.

Приведемо ще один засіб застосування типу enum.

 

enum {red=2,amber,green=5};

 

Константі amber привласнюється значення 3. Імена перелічених констант мають бути унікальними, а значення можуть збігатися. Перевага застосування перелічення перед описом іменованих констант і директивою #define полягає в тому, що зв'язані константи наочніші; крім того, компілятор при ініціалізації констант може виконувати перевірку типів.

Універсальність типу даних enum полягає в тому, що можна користуватись як зарезервованими константами цього типу, так і довільними значеннями типу даних int, що дає програмісту більш широкі можливості.


Поделиться:

Дата добавления: 2014-12-30; просмотров: 165; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты