Структура программы на языке С

Здесь все обычно говорят примерно одно и то же, но часто не то, что я хочу. Часто начинают с того, что программа на языке С состоит из функций. Это не совсем верно. Программа на языке С состоит из файлов. Файлы – неотъемлемая часть, собственно, языка. Файлы бывают обычными С-файлами и include-файлами. Include-файлы существуют только для того, чтобы включаться в другие файлы программы (в C-файлы и include-файлы). Собственно, компилятор языка С include-файлы не видит. Их вставка осуществляется препроцессором, который запускается перед, собственно, компилятором. Например, команда gcc c запускает сначала препроцессор, а только потом, собственно, компилятор. На самом деле, запуск, собственно, компилятора может тоже состоять из запуска отдельных программ. Например: запуск транслятора из C++ в C, а потом запуск компилятора С. Но все может быть еще более сложно.

А теперь можно говорить о том, что есть в файлах:

·         Директивы препроцессора

·         Директивы #pragma управления процессом компиляции

·         Описания и определения функций

·         Описания и определения глобальных переменных

·         Определения новых типов