Справочная система C guide



Содержание


Примеры

extern int Global_var;

extern char *Name;

extern int func();

Можно опускать длину внешнего одномерного массива. Пример

extern float Num_array [ ];

Поскольку все функции определены на внешнем уровне, то для описания функции внутри блока прилагательное extern избыточно и часто опускается.

52 Препроцессор

Пример

L int func();

}"

Функция, не возвращающая значения, должна описываться как имеющая тип void. Если тип функции явно не задан, считается, что она имеет тип int. Областью действия описания на внешнем уровне является остаток файла; внутри блока областью действия является данный блок. Обычно внешние описания располагаются в начале файла.

Некоторые компиляторы допускают описание переменных на внешнем уровне без прилагательного extern. Многократные описания внешних переменных компоновщик сводит к одному определению.

8. ПРЕПРОЦЕССОР

Если в качестве первого символа в строке программы используется символ #, то эта строка является командной строкой препроцессора (макропроцессора). Командная строка препроцессора заканчивается символом перевода на новую строку. Если непосредственно перед концом строки поставить символ обратной косой (\), то командная строка будет продолжена на следующую строку программы.

8.1. Замена идентификаторов

#define идентификатор строка Пример

#efine ABC 100

Заменяет каждое вхождение идентификатора ABC а тексте программы на 100.

#undef идентификатор Пример

#undef ABC Отменяет предыдущее определение для идентификатора ABC.

Препроцессор 53

8.2. Макросы

Замечание. Во избежание ошибок при вычислении выражений параметры макроопределения необходимо заключать в скобки.

#define идентификатор! (идентификатор'1,. .. ) строка

Пример

#define abs(A) (((A) > 0) ? (А) . -(А)) Каждое вхождение выражения abs(arg) в тексте программы заменяется на ((arg) > 0) ? (arg) : -(arg), причем параметр макроопределения А заменяется на arg.

Пример

#define nmem (P, N)\

(Р) -> p_mem [N] .u_long Символ \ продолжает макроопределение на вторую строку. Это макроопределение уменьшает сложность выражения, описывающего массив объединений внутри структуры.




Содержание  Назад  Вперед