Объявление структуры

Структура (запись на языке Pascal) — составной (смешанный, сложный, структурированный) тип данных, который под одним именем объединяет несколько переменных разных типов, которые называются полями (элементами или членами) структуры. В качестве полей могут быть переменные простых типов, массивы, структуры и некоторые другие типы. Если в ”старом” языке C в структуру можно было включать только переменные, то в более поздней версии языка, в С++, структура может содержать, как и класс, функции для обработки полей, которые также называются методами. Сравнение структуры и класса смотри в §4.

Существует несколько способов объявления переменной структурированного типа.

В первом способе сначала объявляем тип структуры, а затем по мере надобности используем этот тип для объявления переменных. Такой способ назовём раздельным объявлением. Например,

struct tstr1

{ char name[20];

int arr[12];

float Par;

};

Здесь struct — ключевое слово, tstr1 — название типа по правилам записи идентификаторов. В фигурных скобках по правилам объявления обычных переменных описываем поля структуры: название в виде статической строки, целочисленный массив из 12 элементов и вещественный параметр. Затем объявляем одну или несколько переменных данного типа:

tstr1 S1, S2;

При этом тип и переменные могут быть описаны в одной функции или тип описывается на глобальном уровне, а переменные — в одной или нескольких функциях.

Второй способ назовём совместным объявлением типа и переменной. Например,

struct tPoint

{ float x, y, z;

} Point1, Point2;

При необходимости, как и в первом варианте, можем использовать тип tPoint для объявления других переменных, например, tPoint P3;

Допускается, но на практике редко используется третий способ, так называемое анонимное объявление, при котором имя типа не указывается.

const n=7;

struct { int a [n];

float Aver;

} A1, A2;

Понятно, что при таком способе невозможно использовать определённый таким образом тип для объявления новых переменных, так как нет имени типа.

Тип (tstr1, tPoint) представляет собой абстрактное понятие, шаблон (заготовку) для создания реально существующей в оперативной памяти переменной структурного типа (S1, S2, Point1, Point2,P3, A1,A2). Такую переменную иногда называют экземпляр структуры. Оперативная память отводится не для типа (например, tstr1), а для переменных (S1 и S2). Её объём для каждой переменной типа структуры равен сумме байт, занимаемых каждым полем структуры. Например, переменная A1 занимает память, объём которой равен: 7*4 (для массива a) + 4 (для переменной Aver)=32байта.

В качестве простого упражнения предлагается самостоятельно определить объём памяти для остальных переменных структурного типа.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: