Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект по информатике.doc
Скачиваний:
5
Добавлен:
15.09.2019
Размер:
98.3 Кб
Скачать

Препроцессы

Кампилятор содержит препроцессор способный выполнять макроподстановки, условную кампиляцию, включения файлов.... Эти строки имеют независимый от остального языка синтаксис, они могут появляться в любом месте и оказывают действие до конца выполнения исходной программы. Каждая строка принимается во внимание, каждая строка анализируется отдельно... Включаемый файл может содержать в себе строки #include.

#define – осуществляет макроподстановки.

#under – позволяет скрыть имена функций, чтоб преопределить существующую функцию на функцию с другим именем.

29.11.2011

Самим кодом препроцессирования можно управлять с помощью условной конструкции. Она представляет собой средство для выборочного включения того или иного текста программы в зависимости от условия. При этом вычисляется константное выражение стоящее в строке с директивой #if. Если оно имеет не нулевое значение, то будут включены все строки, вплоть до директивы #elif. Совместно с #elif, #else и #endif, происходит управление компиляцией исходников файла. В каждой директиве #if, втом же файле, должна быть соответствующая ей директива #endif. Если директива #else присутсвует, то между ней и #endif не должно быть #elif. Инструкции #ifdef, #ifndef предназначены для проверки: определено ли заданное имя. Директива #line <const> «ИФ» сообщает об изменении имени исходного файла и нумерации строк. Имеются предопределённый идентификаторы вида __LINE__/. Определяет номер текущей строки файла. __FILE__ -имя файла. __DATE__- дата компиляции. __TIME__- время компиляции.

Функции

Функции подразделяют большие вычислительные задачи на более мелкие. Программу можно располагать в одном или нескольких исходных файлов, которые компилируются отдельно, а загружаются вместе. Определение функции представляет собой: тип результата имя (параметры). Если тип результата опущен, то предполагается, что функция возвращает значение типа int. Связи между функциями осуществляются через аргументы, возвращаемые значения и внешние переменные. Возвращаемая функция вправе проигнорить возвращаемое значение. Декларировать тип возвращаемого значения должна сама функция, если это не тип int. Кроме того, она дожна быть явно описана в вызываемой программе. Если декларация аргумента не указана, то считается, что ничего об аргументах не известно и все проверки на соответствие параметров будут исключены. Если на внешнюю декларацию нужно ссылаться до того, как она определена, или она определена в другом файле, то эта декларация должна обозначаться словом extern.

Формальные и фактические параметры

Формальные параметры – это переменные, которые принимают значение переданной функции при её вызове, в соответствии со списком. Имена формальных параметров перечисляются в списке параметров в определении функции. Список параметров может быть пустым, но круглые скобки обязательны. Имена формальных параметров не могут совпадать с именами переменных или других объектов объявленных внутри функции.

Фактический параметр может быть любым значением базового типа, или указателем. Все фактические параметры передаются по значению. Значение оптических аргументов копируется в соответствующие формальные параметры. Функция использует тоько эти копии не изменяя сами переменные. Для получения аргументов из командной строки функцией main должно быть объявлено три параметра: argc, argv, envp. Argc показывает число параметров, которые будут переданы через командную строку и имеют тип int. Argv представляет собой массив адресов, каждый из которых указывает на строковое представление соответствующего порядка аргументов. Первый элемент argv массива содержит имя программы, котороя будет вызвана. Envp – массив строк, определяющий среду выполнения программы.