Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Структура текстового файла программы



Текст программы может быть размещен в одном или нескольких текстовых файлах (модулях). Модули взаимодействуют друг с другом посредством вызовов функций, которые они содержат, доступа к глобальным переменным, определениям типов и константам. Важным элементом проектирования программы является возможность раздельной трансляции модулей: файлы компилируются по отдельности и объединяются на этапе компоновки.

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

Пример структуры текстового файла программы, включающей функции main(), f1() и f2():

// имя файла

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

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

#include ”файл пользователя” //подключение заголовочных файлов пользователя

// определение глобальных переменных

// прототипы функций

void f1(); // прототип функции f1

int f2 (int, char); // прототип функции f2

// определение функции main()

int main () { // заголовок функции

//тело функции (операторы)

// операторы, содержащие вызов функций f1 и f2, например: f1();

// например: cout << f2(4, ‘a’) << endl; выведет то, что вернет вызов функции, т.е. выражение
return 0; // завершает тело функции с заголовком int main ()

}

// определение функции f1()

void f1() { // заголовок функции

//тело функции

return; // завершает тело функции с заголовком void f1()

}

// определение функции f2()

int f2 (int k, char c) { // заголовок функции

//тело функции f2

return выражение; // завершает тело функции с заголовком int f1(int k, char c)!!!

}

Если функция main() получает аргументы, то она определяется так:

int main (int argc, char *argv[]) // или int main(int argc, char **argv)
{

//тело функции

return 0;
}
где: int argc – число слов, переданное в программу при ее запуске,
char *argv[ ] – массив из argc строк;
аргумент argv[0] является именем запускаемого на выполнение файла;
argv[1] – первое переданное слово;
argv[2] – второе переданное слово ….. и т.д.

Стандарт языка С++ требует, чтобы функции были объявлены до первой ссылки на них: их прототипы размещаются в начале программы. Компилятор выполняет строгую проверку числа параметров и соответствия типов в прототипе, в вызове функции и в ее определении, а в ряде случаев выполняет и неявное преобразование типов.

Имена функций – это глобальные имена, видимые по умолчанию из всех файлов одного проекта. Однако прототип функции действует только в пределах одного файла. Из-за этого, в частности, приходиться помещать во все совместно компилируемые файлы директивы препроцессора, связанные с подключением .h -файлов, содержащих прототипы библиотечных функций. Как мы видели, прототипы функций помещаются в заголовочный файл, подключаемый директивой #include к тексту файла программы.





Дата публикования: 2014-11-29; Прочитано: 388 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...