Главная Контакты


  На сайте

  Java, JavaScript
  Документация Perl
  Документация PHP
  Документация ASP
  Новости сайта
  Flash
  Интернет протоколы
  Apache
  Уроки программирования
  Язык программирования C
 


Функции и структура программ


Как они сотрудничают вместе - не сложно. Функция ungetch помещает вытолкнут знак в совместно используемый буфер - символьный массив. Функция getch читает из буфера, если там что-то есть, и вызывает getchar, если буфер пуст. Должно существовать также индексная переменная, которая бы регистрировала положение текущего знака в буфере.

Поскольку, для getch и ungetch, буфер и индекс - общие, и должны сохранять свои значения между вызовами, то они должны были внешними для обеих функций. Мы можем написать getch и ungetch с внешними зминннимы, как:
# Define BUFSIZE 100

char buf [BUFSIZE]; / * буфер для ungetch * /
int bufp = 0; / * следующая свободная позиция в buf * /

int getch (void) / * получить (возможно вытолкнут) знак * /
{
return (bufp> 0)? buf [- bufp]: getchar ();
}

void ungetch (int c) / * вытолкнуть знания обратно в ввод * /
{
if (bufp> = BUFSIZE)
printf ("ungetch: too many characters \ n");
else
buf [bufp + +] = c;
}

Стандартная библиотека включает функцию ungetch, позволяющая вытолкнуть один знак: мы рассмотрим ее в далее. Мы же использовали массив для вытолкнуть знаков, вместо одного единственного, чтобы продемонстрировать более общий подход.

Правила области действия

Функции и внешние переменные, которые составляют программу на C, не обязательно должны быть компилируемых одновременно; исходный текст программы может храниться в нескольких файлах и предварительно компилируемые функции могут быть загруженными из библиотек. Среди вопросов, которые нас могут заинтересовать, является
Как написать объявление, поэтому переменные объявлены должным образом во время компиляции?
Как объявление огранизованной, поэтому все части будут соединены как следует при загрузке программы?
Как объявление организованно, поэтому существовать лишь одна копия?
Как начать внешние переменные?


Давайте обсудим эти вопросы путем реогранизации нашей программы-калькулятора в несколько файлов. С практической точки зрения, калькулятор, это слишком маленькая программа, чтобы разбивать ее, но она служит хорошим примером вопросов, викикають в больших программах.

Другие статьи по теме:

- Введение в c++
- Внешние переменные и область действия
- Типы, операторы и выражения
- Символьные массивы
- Функции и структура программ


Голосование:
Чего Вы хотели бы видеть больше на сайте?

Статей, документации
Скриптов
Программ для вебмастера
Я не знаю



Другие голосования

Обмен кнопочками:



Приглашаем Вас обменяться кнопочками! Обращайтесь к администратору.


Новые статьи:


Наши партнеры:





2006-2024 © SMTI.RU
Главная страница | Связаться с нами