Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SVT.doc
Скачиваний:
23
Добавлен:
25.09.2019
Размер:
1.65 Mб
Скачать

Основы технологии разработки программного обеспечения Структура программы на языке Си

#include <stdio.h> //подключение стандартного заголовочного файла

#include “my_lib.h” //подключение локального заголовочного файла

#define a 500 // - это команда препроцессора

int global_i = 0xA9; //формат записи 16тиричных чисел

float Global_i = 0.635;

/* ВАЖНО!

Синтаксис языка Си чувствителен к регистру букв,

т.е. а и А – две разные переменные!

*/

int Func1(void)

{

int local_i;

return local_i;

};

int main(void) // по сути main обычная функция

{

int fahr, celsius;

int lower, upper, step;

lower = 0; /* нижняя граница таблицы температур */ ,

upper = 300; /* верхняя граница */

step = 20; /* шаг */

fahr = lower;

while (fahr <= upper) {

Celsius = 5 * (fahr-32) / 9;

printf ("%d\t%d\n", fahr, celsius);

fahr = fahr + step;

};

return 0; // ExitCode. 0 – все хорошо, 1 – ошибка общего вида

}

Компиляция программы

Исходный текст > Работа препроцессор > Преобразованный исходный текст > Работа компилятора > Объектный файл (машинные коды) > Работа линковщика > Исполняемый файл (устанавливаются адреса вызова библиотечных процедур)

Директивы препроцессора

#define #include - препроцессорными директивами

препроцессор — это компьютерная программа, принимающая данные на входе, и выдающая данные, предназначенные для входа другой программы, например, такой как компилятор

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

Наиболее широкое распространение среди лексических препроцессоров получил препроцессор языка Си, используемый в языках программирования Си и его потомка, C++. Этот препроцессор обспечивает использование стандартного набора возможностей:

Замена триграфов ?=, ??(, ??) символами #,[,]

Замена комментариев пустыми строками

Включение файла — #include

Макро-подстановки — #define

Условная компиляция — #if, #ifdef, #ifndef, #else, #endif

Важной областью применения препроцессоров С является условная компиляция. При подготовке программы к компиляции разработчик может с помощью нескольких изменений адаптировать программу к текущей ситуации (например, к определенной модели процессора).

Присоединение файла

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

Макросы

#define - Макросы в языке Си преимущественно используются для определения небольших фрагментов кода. Во время обработки кода препроцессором, каждый макрос заменяется соответствующим ему определением. Если макрос имеет параметры, то они указываются в теле макроса; таким образом, макросы языка Си могут походить на Си-функции. Распространенная причина использования — избежание накладных расходов при вызове функции в простейших случаях, когда небольшого кода, вызываемого функцией, достаточно для ощутимого снижения производительности.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]