Курсовая работа: Разработка статических и динамических библиотек на языке программирования С/C++ в операционных системах UNIX
Для примера давайте напишем маленькую простейшую программку:
#include <stdio.h>
int main(){
printf("[http://linux.firststeps.ru]\n");
printf("Our first program for Linux.\n");
return 0;
};
2 Компиляция нескольких файлов
Обычно простые программы состоят из одного исходного файла. Дело обстоит несколько сложнее, если эта программа становится большой. При работе с такой программой может возникнуть несколько достаточно серьезных проблем:
Файл, становясь большим, увеличивает время компиляции, и малейшие изменения в исходном тексте автоматически вынуждают тратить время программиста на перекомпиляцию программы.
Если над программой работает много человек, то практически невозможно отследить сделанные изменения.
Процесс правки и само ориентирование при большом исходном тексте становится сложным и поиск небольшой ошибки может повлечь за собой вынужденное "изучение" кода заново.
Это далеко не все пробемы, которые могут возникнуть при наличии программы "монстра". Поэтому при разработке программ рекомендуется их разбивать на куски, которые функционально ограничены и закончены. В этом значительно помогает сам язык C++, предоставляя свой богатый синтаксис.
Для того, чтобы вынести функцию или переменную в отдельный файл надо перед ней поставить зарезервированное слово extern. Для примера создадим программу из нескольких файлов. Сначала создадим главную программу, в которой будут две внешние процедуры. Назовем этот файл main.c :
#include <stdio.h>
// описываем функцию f1() как внешнюю
extern int f1();
// описываем функцию f2() как внешнюю
extern int f2();
int main()
{
int n1, n2;
n1 = f1();
n2 = f2();
printf("f1() = %d\n",n1);
printf("f2() = %d\n",n2);
return 0;
}
Теперь создаем два файла, каждый из которых будет содержать полное определение внешней функции из главной программы. Файлы назовем f1.c и f2.c :