Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Описание глобальных переменных




ОПИСАНИЕ ТИПОВ ДАННЫХ, ДОСТУПНЫХ ВСЕМ ПОСЛЕДУЮЩИМ ФУНКЦИЯМ

По сути, подключение файла заголовков означает вставку его содержимого в точке подключения. Применяются для многофайловых проектов для улучшения их структуры и облегчения их модификации.

ПОДКЛЮЧЕНИЕ ФАЙЛОВ ЗАГОЛОВКОВ

 

Подключаемые файлы заголовков (headers-файлы). Это, как правило, файлы с расширением.h. Они могут содержать описание прототипов функций, описание переменных, констант, классов и т.п.

Подключение файлов заголовков производится с помощью директивы include.

Например:

#include <stdio.h>

или

#include ”stdio.h”

При необходимости можно указать полный путь к файлу.

 

*/

 

//---------------------------------------------------------------------------------------

 

 

/*

 

Описание типов данных при помощи ключевого слова typedef или ключевых слов class, struct, union (при описании классов).

Например, можно описать такой пользовательский тип данных при помощи ключевого слова typedef:

typedef unsigned short int UINT;

т.е. был описан тип данных UINT, который представляет собой беззнаковый 16-битный целый (в случае использования 32-битного компилятора).

*/

 

/*

 

Описание производится следующим образом:

тип_данных имя_пер1, имя_пер2, …, имя_перN;

Например,

int a, b, sum, ar[10];

В данном примере описано 3 переменных типа int и массивиз 10 элементов типа int. Следует отметить, что при описании переменных также можно задавать их начальные значения, например:

char ch =’a’, ch1 = 32;

В данном примере переменной ch присвоен код символа ’a’, а переменной ch1 – значение 32.

 

При описании переменных можно использовать ключевое слово const, которое позволяет описывать переменные, значения которых нельзя изменять. Для констант, описанных таким образом, определен тип данных. Эти константы (на самом деле - немодифицируемые переменные) можно использовать при описании массивов для указания количества элементов. Например:

const int c_a = 0;

Следует отметить, что в этом случае начальное значение (меняться не может) ОБЯЗАТЕЛЬНО необходимо указывать. Если после ключевого слова const не указать тип данных, то подразумевается тип данных int.

 

Константное значение также можно описать с помощью директивы #define (она также может называться макроопределением), например:

#define C_A 100

Таким образом, был описан идентификатор, значение которого компилятор в коде программы всегда будет заменять на 100. В качестве значения может быть использовано выражение. Следует обратить внимание, что сфера применения директивы #define значительно шире, чем простое описание констант, как это делалось в языке Паскаль. Например, можно сделать такие определения:

#define begin {

#define Begin {

#define BEGIN {

#define end }

#define End }

#define END }

Теперь вместо операторных скобок { } можно применять привычные для языка Паскаль операторные скобки Begin End в разных вариантах написания (в языке C++ большие и маленькие буквы различаются).

 

При описании переменных также можно указать один из 4-ех классов памяти: auto, static, register и extern. Если ничего не указать, то по умолчанию выбирается auto. Их назначение описано в табл. 1.

 

Табл. 1. Назначение классов памяти

в языке C++.

Название Назначение
auto Значение переменной сохраняется либо в ячейке памяти (сегмента данных или стека), либо в регистре центрального процессора (выбор делается компилятором автоматически в процессе оптимизации кода). Начальное значение переменной не определено и не сохраняется при выходе за пределы области видимости.
static Значение переменной не пропадает при выходе за пределы ее области видимости. Переменная получает начальное значение, равное 0, соответствующего типа данных.
register Значение переменной сохраняется в регистре центрального процессора, а не в сегменте данных или стека, если это возможно (позволяет размер переменной). Неумелое применение этой директивы может привести к снижению производительности вместо ее повышения. Начальное значение переменной не определено и не сохраняется при выходе за пределы области видимости. Нельзя использовать при описании глобальных переменных.
extern Ссылка на переменную, объявленную в другом модуле (.h или.cpp файле) или в этом же модуле, но ранее.

 

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

 

*/

 

//---------------------------------------------------------------------------------------

 

/*

ОПИСАНИЕ ПРОТОТИПОВ (ЗАГОЛОВКОВ) ФУНКЦИЙ

 

Описание прототипов функций (на языке C++ подпрограммы бывают только в виде функций) и / или описание заголовков и тел функций.

Ключевое слово inline обозначает, что тело функции будет подставлено в точку вызова. Обычно применяется для маленьких функций с целью повышения производительности.

*/

 

inline Тип_возвр_значения Имя_функц1(Необяз_список_аргументов);

 

или

 

Тип_возвр_значения inline Имя_функц1(Необяз_список_аргументов);

 

или

 

Тип_возвр_значения Имя_функц1(Необяз_список_аргументов);

 

или

 

Тип_возвр_значения Имя_функц2(Необяз_список_аргументов)

{

/*

Тело функции: может содержать описание типов данных, переменных, и собственно, код.

*/

}

 

//---------------------------------------------------------------------------------------

 

/*




Поделиться с друзьями:


Дата добавления: 2017-01-14; Просмотров: 385; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.