Имя функции — это коллективное имя группы описаний и операторов,
заключенных в блок (фигурные скобки). За именем функции в круглых скобках указываются параметры функции.
Комментарии в языке Си
В языке Си для комментариев используются символы
/* — начало комментария;
*/ — конец комментария.
Вся последовательность, заключенная между этими символами, является комментарием.
Это удобно для написания многострочных комментариев:
Многострочные комментарии также удобно использовать при отладке для сокрытия от выполнения части кода.
Главная функция
Следующие за именем функции круглые скобки предназначены для указания параметров (аргументов), которые передаются в функцию при обращении к ней. В данном случае операционная система не передаёт в функцию main() никаких аргументов, поэтому список аргументов в круглых скобках пустой.
Главную функцию можно записать по-разному:
Перед именем функции указывается тип возвращаемого значения. При обращении к главной функции значение возвращается операционной системе. Последняя запись не будет возвращать значения. Однако void main() — не совсем корректная запись, так как сообщает компилятору, что функция main() не возвращает никакого значения.
Язык программирования Си. Урок 1. Базовая структура программы
При этом запись int main() сообщает компилятору о возвращении целочисленного значения, которое необходимо операционной системе и сообщает ей о том, что программа завершилась корректно. Если же это значение не возвращено, то операционная система понимает, что программа завершилась в аварийном режиме.
Для возврата целочисленного значения перед завершением функции добавляется строка
В фигурные скобки заключены описания и операторы.
В общем случае программа может содержать несколько функций. Каждая функция имеет список передаваемых в нее параметров, указанный в круглых скобках, и набор операций, заключенных в блок, ограниченный фигурными скобками.
Результат работы программы:
Теперь попробуем написать текст на русском языке.
При этом текст программы будет выглядеть следующим образом:
Результат работы программы:
Основы языка Си
Структура программы на Си
Программа на языке Си состоит из набора директив препроцессора, определений функций и глобальных объектов. Директивы препроцессора управляют преобразованием текста до его компиляции. Глобальные объекты определяют используемые данные или состояние программы. А функции определяют поведение или действия программы. Простейшая программа на Си, которая была определена в прошлых темах:
Инструкции
Простейшим строительным элементом программы на Си являются инструкции (statements). Каждая инструкция выполняет определенное действие. В конце инструкций в языке Си ставится точка с запятой (;). Данный знак указывает компилятору на завершение инструкции. Например:
Вызов функции printf, которая выводит на консоль строку «Hello world!» является инструкцией и завершается точкой с запятой.
Набор инструкций может представлять блок кода. Блок кода оформляется фигурными скобками, инструкции, составляющие тело этого блока, помещаются между открывающей и закрывающей фигурными скобками:
В этом блоке кода две инструкции. Обе инструкции представляют вызов функции printf() и выводят определенную строку на консоль.
Директивы препроцессора
Директива include является директивой препроцессора. Кроме данной include есть еще ряд директив препроцессора, например, define.
Непосредственно директива «include» определяет, какие файлы надо включить в данном месте в текст программы. По умолчанию мы можем подключать стандартные файлы из каталога так называемых «заголовочных файлов», которые обычно поставляются вместе со стандартными библиотеками компилятора. И файл «stdio.h» как раз является одним из таких заголовочных файлов.
Вообще сам термин «заголовочный файл» (header file) предполагает включение текста файла именно в начало или заголовок программы. Поэтому заголовочные файлы подключаются, как правило, в начале исходного кода. Кроме того, заголовочный файл должен быть подключен до вызова тех функций, которые он определяет. То есть, к примеру, файл stdio.h хранит определение функции printf, поэтому этот файл необходимо подключить до вызова функции printf.
Но в целом директивы препроцессора необязательно должны быть размещены в начале файла.
При компиляции исходного кода вначале срабатывает препроцессор, который сканирует исходный код на наличие строк, которые начинаются с символа #. Эти строки расцениваются препроцессором как директивы. И на месте этих директив происходит преобразование текста. Например, на месте директивы #include вставляется код из файла stdio.h.
Функция main
Функция также является блоком кода, поэтому ее тело обрамляется фигурными скобками, между которыми идет набор инструкций.
Стоит отметить, что в разной литературе и примерах можно встретить модификации этой функции. В частности, вместо определения выше мы могли бы написать по другому:
Использование этих определений не было бы ошибкой, и программа также вывела бы строку «Hello world» на консоль. И для большинства компиляторов это было бы нормально.
Далее мы подробнее рассмотрим определение функций, но здесь надо учитывать следующий аспект. Определение функции в виде int main(void) зафиксировано в стандарте языка С11. Компиляторы прежде всего ориентируются на стандарт языка, его спецификацию. Поэтому если мы используем то определение, которое дано в стандарте языка, то больше шанс, что оно будет поддерживаться всеми компиляторами. Хотя опять же повторюсь, в использовании второго варианта или int main() большой ошибки не будет.
Полностью последний стандарт C11 можно посмотреть по ссылке.
Похожие статьи:
- Структура программы на языке pascal Введение Под языком программирования мы будем понимать совокупность средств и правил представления алгоритма в виде, приемлемом для компьютера….
- Логическая структура памяти программы ДОПОЛНЕНИЕ К ИЗУЧЕННОМУ МАТЕРИАЛУ Препроцессор и его функции Препроцессор – программа, используемая для обработки исходного текста программы на языке С…
Источник: csaa.ru
Си++ Структура программы main, params, #define
Функций в программе может быть много — но все они так или иначе (напр. — косвенно
-то есть одна «неглавная» функция вызывает другую) вызываются из главной.
А вот программа, которая здоровается с миром:
# include < iostream >int main ()
Строка #include дает указание компилятору включить (include) объявле-
ния средств ввода/вывода стандартной библиотеки, находящиеся в iostream.
Без этих объявлений следующая строка производящая вывод — должного эффекта не возымеет — то есть ничего на экран не выведет.
Каждое средство стандартной библиотеки становится доступным через какой-либо
стандартный заголовочный файл наподобие .
#include < string >#tinclude
ПРИМЕЧАНИЕ: вообще если отойти от первых глав учебника Страуструпа -и начать читать дальше — или просто писать программу, то можно заметить , что в функцию main передаются так называемые параметры командной строки, например:
void main(int argc, char *argv[])
Читайте о директиве #define здесь
params
что подразумевается под этим пунктом -не ясно. вполне возможно что преподаватель перепутал описание произвольного числа аргументов функции с таковым в Си#
Key Words for FKN + antitotal forum (CS VSU):
- неофициальный форум фкн
- ФКН ВГУ Воронеж
- программирование Воронеж
- ВГУ информатика
- ВГУ компьютерных наук
Источник: fkn.ktu10.com