![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Более простым способом компиляции многомодульных программ является передача их имен файлов автономному компилятору. Например, можно ввести bсс duped.c gets.c. Эта команда менее эффективна, так как она перекомпилирует файл GЕТS.C, даже если он уже скомпилирован в объектный файл GETS.OBJ.
И, наконец, самый простой способ создания законченной программы из нескольких модулей: необходимо добавить в модуль DUPED.С строки из модулей GЕТS.H и GЕТS.C, убрав при этом из модуля DUPED.С лишние строки (#include "gets.h" и т.п.)
Листинг 6.5. DUPED.С (функция GetStringAt())
1: #include <stdio.h>
2: #include <conio. h>
3: #include <string. h>
4: #include <alloc.h>
5: #include "gets.h"
6:
7: /* Замечание: эта программа должна быть скомпонована с
8: файлом CETS.OBJ, созданным при компиляции GETS.С */
9:
10: #define X_ENTRY 12 /* Координата ввода Х */
11: #define Y_ENTRY 10 /* Координата ввода Y */
12: #define PROMPT "String: " /* Приглашение на ввод */
13:
14: main()
15: {
16: char *s; /* Указатель на результат функции GetStringAt() */
17:
18: clrscr();
19: gotoxy(X_ENTRY - strlen(PROMPT), Y_ENTRY);
20: printf(“Stnng: ");
21: s = GetStringAt(X_ENTRY, Y_ENTRY, MAXLEN);
22: gotoxy(1,24);
23: if (s) {
24: puts("Your entry is:");
25: puts(s);
26: printf("Length == %d characters\n", strlen(s));
27: free(s);
28: } else
29: puts("Error duplicating string!");
30: return 0;
31: }
_______________________________________________________
Строка 21 вызывает функцию GetStringAt(), передавая ей три аргумента: координату х, координату у и максимальную длину результата. Функция располагает курсор в заданном месте (полезная вещь при разработке экранов ввода данных) и ограничивает ввод требуемым числом символов.
В строке 23 программа проверяет результат функции GetStringAt(). Если она возвращает нуль, это значит, что функция strdup() не смогла создать копию ввода, возможно, из-за недостатка памяти в куче. Обратите внимание также на освобождение памяти строкой 27 после того, как она оказывается больше не нужной.
Дата публикования: 2015-01-23; Прочитано: 230 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!