|
Функции и структура программВнешние переменные Программа на C состоит также из набора внешних объектов - переменных или функций. Прилагательное "внешний" используется как противопоставление "внутреннем", который описывает аргументы и переменные, определенные внутри функций. Внешние переменные - обозначенные вне любой функции и, таким образом, потенциально доступны многим функциям. Сами функции всегда остаются внешними, так C не позволяет означать функции внутри других функций. Стандартно, внешние переменные и функции имеют одно свойство, которое заключается в том, что все обращения к ним за тем же именем - даже из функций, компилируемых отдельно - ссылаются на ту же вещь. (Стандарт называет это внешней совместимость) В этом смысле, внешние переменные похожи блоков COMMON языка Fortran или переменных из самого блока в Pascal. Мы узнаем позже, как означуваты внешние переменные и функции, видимые только с того же исходного файла. Поскольку внешние переменные доступны глобально, они служат альтернативой аргументам функций, и могут быть использованы для обмена данными между функциями. Любая функция может обратиться к внешней переменной, ссылаясь на ее имя, если это имя каким образом объявлено. Если функции вынуждены разделять большое число переменных между ними, внешние сменные удобнее и эффективнее, чем длинные списки аргументов. Но, как уже было указано в главе 1, эти соображения следует применять с осторожностью, поскольку они могут плохо сказаться на структуре программы, и привести к программам по великоватой количеством сочетаний данных между функциями. Внешние переменные также полезные через большую область действия и продолжительность жизни. Автоматические переменные являются внутренними для функций, они появляются при входе в функцию и исчезают при выходе из нее. Противовес, внешние переменные - постоянные, а значит удерживают значение от одного вызова функции до другого. Таким образом, если две функции должны совместно использовать какие-то данные, но ни одна из них не вызывает другой, часто удобнее, чтобы общие данные хранились во внешних переменных, вместо передачи их туда-сюда в виде аргументов. Исследуем этот вопрос глубже на большем примере. Задача будет состоять в написании программы-калькулятора, которая бы обеспечивала операторами +, -, * и /. Поскольку это легче воплотить - калькулятор использовать обратную польскую запись вместо инфиксного (обычного). (Обратная польская нотация используется в некоторых карманных калькуляторах а также в таких языках как Forth или Postscript.) Продолжение статьи: ч.1 Продолжение статьи: ч.2 Продолжение статьи: ч.3 Продолжение статьи: ч.4 Продолжение статьи: ч.5 Продолжение статьи: ч.6 Продолжение статьи: ч.7 Продолжение статьи: ч.8 Продолжение статьи: ч.9 Продолжение статьи: ч.10 Продолжение статьи: ч.11 Продолжение статьи: ч.12 Продолжение статьи: ч.13 Продолжение статьи: ч.14 Продолжение статьи: ч.15 Продолжение статьи: ч.16 Продолжение статьи: ч.17 Продолжение статьи: ч.18 Продолжение статьи: ч.19 Продолжение статьи: ч.20 Продолжение статьи: ч.21 Другие статьи по теме: - Символьные массивы- Типы, операторы и выражения - Функции и структура программ - Внешние переменные и область действия - Введение в c++ |
|
2006-2024 © SMTI.RU Главная страница | Связаться с нами |