Язык программирования C



         

Структуры, ссылающиеся на себя - часть 4


не предусматривает никакого определенного выравнивания; в лекции №8 мы продемонстрируем, как правильно выполнить эту задачу.

Вопрос описания типа функции alloc является мучительным для любого языка, который серьезно относится к проверке типов. Лучший способ в языке "C" - объявить, что alloc возвращает указатель на переменную типа char, а затем явно преобразовать этот указатель к желаемому типу с помощью операции перевода типов. Таким образом, если описать p в виде

char *p;

то

(struct tnode *) p

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

struct tnode *talloc() { char *alloc();

return ((struct tnode *) alloc(sizeof(struct tnode))); }

это более чем достаточно для работающих в настоящее время компиляторов, но это и самый безопасный путь с учетом будущего.

Упражнение 6-4

Напишите программу, которая читает "C"-программу и печатает в алфавитном порядке каждую группу имен переменных, которые совпадают в первых семи символах, но отличаются где-то дальше. (Сделайте так, чтобы 7 было параметром).

Упражнение 6-5

Напишите программу выдачи перекрестных ссылок, т.е. программу, которая печатает список всех слов документа и для каждого из этих слов печатает список номеров строк, в которые это слово входит.

Упражнение 6-6

Напишите программу, которая печатает слова из своего файла ввода, расположенные в порядке убывания частоты их появления. Перед каждым словом напечатайте число его появлений.




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