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

Структура программы.

Программа на языке С содержит как минимум один текстовый файл. Для Windows приложения в проект дополнительно включается файл ресурсов, содержащий описание диалогов, растровых рисунков и др.

Текстовый файл начинается с команд препроцессора #include <имя файла заголовков .h>. Далее следует описание функций, текст которых находится в другом файле или в этом же файле, но в конце файла. Описание глобальных переменных предшествует тексту функций. В любом месте программы можно вставлять комментарии, которые начинаются двумя знаками деления (//) и идут до конца строки. В одном из файлов должна существовать функция с именем main – для DOS приложения, или WinMain – для Windows приложения. Эта функция является точкой входа в программу и с нее начинается сборка.

Пример простейшей программы:

//

// Это первая наша программа

// Автор – Я, 2004

//———————————-

#include <stdio.h>

int main()

{

printf(“Это пример простейшей программы.”);

return 0;

}

В начале программы приведен комментарий, описывающий программу, автора и дату создания. Комментарий начинается двумя косыми чертами (//) и идет до конца строки. Можно выделить участок текста как комментарий, если начать его знаками /* и закончить знаками */.

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

Далее следует функция main, которая не имеет параметров. Она возвращает в качестве результата целое число(int). Тело функции main заключено в фигурные скобки.

Первым оператором функции main является вызов функции printf, которая вызывается для вывода на экран текста, заключенного в кавычки. Каждый оператор в языке С заканчивается точкой с запятой.

Оператор return используется для завершения функции и возврата целого числа «нуль».

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

Представление данных.

При написании программы на С используются числовые и текстовые константы и переменные.

Целые числа записываются как последовательность цифр. Впереди числа может стоять его знак (плюс или минус), в конце - символ L(эль) для представления числа двойной длины. Числа с плавающей запятой записываются в виде +1.234e-56 (знак числа, целая часть, точка, дробная часть, символ e, знак порядка, порядок). Эта запись соответствует числу 1,234*10-56. Можно опускать различные части представления, важно только, чтобы число не выглядело как целое (1. .12 1e-5 – это примеры чисел 1, 0,12, 0,00001). Текстовые строки записываются в двойных кавычках, одиночные символы в одинарных кавычках.

Чтобы выделить память для данных конкретного типа необходимо определить переменную. Переменные, используемые в программе, должны быть объявлены. Объявление начинается с указания типа переменной, за которым пишутся имена переменных, разделенные запятыми. Именами переменных может быть любой набор букв латинского алфавита , цифр и знака _ (подчеркивание). Первой должна быть буква. Заглавные и строчные буквы различаются. Каждая переменная должна быть инициализирована. Это можно сделать непосредственно в описании, например целые переменные a_9, x7a и Alpha описываются следующим образом:

int a_9, x7a=3, Alpha = 0; a_9=-27345;

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

Многократно используемую константу можно описать так же, как и переменную, добавив слово const перед описанием, например:

const int buffersize=128;

В этом случае компилятор разрешает только использовать указанную переменную.

В языке имеются следующие типы данных:

char – отдельный текстовый символ, обычно он занимает один байт,

int – целое число, обычно занимает 2 байта,

long (int) – целое число двойной длины, обычно занимает 4 байта,

float – числа с плавающей точкой обычной точности, занимают 4 байта,

double – числа с плавающей точкой двойной точности, занимают 8 байт,

long double – числа с плавающей точкой двойной точности, занимают 10 байт,

void - величина нулевой длины и не имеющая значения.

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

Кроме определения типа, можно к описанию переменной добавить спецификатор класса памяти.

Спецификаторы auto и register указывают на локальное время жизни переменной, а спецификаторы static и extern – на глобальное. Объект с глобальным временем жизни существует на протяжении всего времени выполнения программы.

Если переменная объявлена на внешнем уровне (допустимы классы памяти static или extern), то она видима во всей оставшейся части файла. Класс extern указывает на то, что переменная описана или в другом файле или в этом же файле, но позже.

Если переменная объявлена на внутреннем уровне (т.е. внутри блока, ограниченного фигурными скобками), то ее видимость определяется только этим внутренним блоком (спецификатор extern используется для указания на переменную, объявленную во внешнем блоке).