Направления программирования. История создания языка Си. Особенности языка, страница 6

п. 4.2. Define       

Директива # define используется для объявления именованных констант (макросов).

# define <имя макроса> <значение макроса>

Пример 1: # define TRUE  1

Препроцессор просматривает весь файл и заменяет каждое найденное значение строки TRUE на символ ‘1’. Для определения константы используется ключевое слово const.

Пример 2: const int TRUE = 1

В первом примере для строки TRUE не отводится память, она вообще не является переменной. Второй вариант определяет переменную TRUE, только защищаемую компилятором от изменения содержимого. Одним из недостатков использования символьных констант, определяемых с помощью  define вместо констант const связан с тем, что препроцессор не производит проверки  типов и анализа сферы действия идентификаторов (локальной или глобальной видимости). Зато компилятор замечает синтаксическое нарушение при незаконном употреблении константы const.

п. 5. Типичная структура программы на Си.

           # include <имя файла. расширение>             Подключаются заголовочные файлы

           - - - - - - - - - - - -                                              библиотечных функций и все внешние файлы.

# include “ имя файла. расширение ”

           # define          имя макроса 1          значение макроса 1                Объявление макросов

            - - - - - - - - - - - -                                                                              (именованных констант)

# define          имя макроса 2          значение макроса 2 

< Объявление глобальных переменных >   

< Объявление и определение функций >  

void main (void)

{

< Объявление локальных переменных > 

< Операторы >;

               }                                                               (нельзя ставить точку с запятой)

Замечание: # define max 20  (; )

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

-  Объявление функций (синоним: описание, прототип) – тип возвращаемого значения, имя функции и возможно, атрибуты формальных параметров. Иными словами объявление – это заголовок функции заканчивающейся  (;).

-  Определение функции. Включает заголовок функции и тело функции. Порядок следования определений функций в программе не существенен, т.е. функция может быть определена после главной функции, но в этом случае она должна быть объявлена перед вызывающей функцией.

Объединение

 

Структуры

 

Перечисляемый

 

Массивы

 

Указатель

 

Вещественный

 

Целый

 

VOID

 

Символьный

 

производные (определяемые пользователем)

 

Базовые

 

Типы данных языка Си