Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Простейшая программа на Си






Два этапа создания программ

Программа на языке Си, также как и на большинстве современных языков программирования, создается в два этапа

1) трансляция – перевод текста программы в машинные коды;

2) компоновка – сборка частей программы и подключение стандартных функций.

 

Исходный файл:

First.cpp

 


Транслятор

Объектный файл: first.o Стандартные функции

 


Компоновщик


Исполняемый файл:

First.exe

Почему же не сделать все за один шаг? Для простейших программ это действительно было бы проще, но для сложных проектов двухступенчатый процесс имеет явные преимущества:

• обычно сложная программа разбивается на несколько отдельных частей (модулей), которые отлаживаются отдельно и зачастую разными людьми; поэтому в завершении остается лишь собрать готовые модули в единый проект;

• при исправлении в одном модуле не надо снова транслировать (переводить в машинные коды) все остальные (это могут быть десятки тысяч строк);

• при компоновке во многих системах можно подключать модули, написанные на другихязыках, например, на Ассемблере (в машинных кодах).

Трансляторы языка Си называются компиляторами: они переводят (транслируют) сразувсю программу в машинный код, а не транслируют строчка за строчкой во время выполнения, как это делают интерпретаторы. Это позволяет значительно ускорить выполнение программы и не ставить интерпретатор на каждый компьютер, где программа будет выполняться.

Исходный файл программы на языке Си имеет расширение *.с или *.cpp (расширение*.cpp говорит о том, что в программе могут быть использованы возможности языка Си++). Это обычный текстовый файл.

Транслятор переводит исходный файл (вернее, записанную в нем программу) в машинные коды и строит так называемый объектный файл с тем же именем и расширением *.o. Хотя в нем уже записан машинный код, объектный файл еще нельзя запускать на компьютере, потому что в нем не хватает стандартных функций (например, для ввода и вывода данных).

Компоновщик подключает стандартные функции, хранящиеся в библиотеках (они имеютрасширение *.a). В результате получается один файл с расширением *.exe, который и представляет собой готовую программу.

Простейшая программа на Си

Такая программа состоит всего из 8 символов. Вот она:

main()

{

}

Основная программа всегда называется именем main (будьте внимательны – Си различаетбольшие и маленькие буквы, а все стандартные операторы Си записываются маленькими буквами). Пустые скобки означают, что main не имеет аргументов. Фигурные скобки обозначают начало и конец основной программы – поскольку внутри них ничего нет, наша программа ничего не делает, она просто соответствует правилам языка Си, ее можно скомпилировать и получить exe-файл.

 

Чтобы использовать стандартные функции, необходимо сказать транслятору, что есть функция с таким именем и перечислить тип ее аргументов – тогда он сможет определить, верно ли мы ее используем. Это значит, что надо включить в программу описание этой функции. Описания стандартных функций Си находятся в так называемых заголовочных файлах с расширением *.h.

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

Препроцессор – это специальная программа, которая обрабатывает текст вашей программы раньше транслятора. Все команды препроцессора начиняются знаком #.

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.007 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал