Модератор: Модераторы разделов
fatboy
Сообщения: 156
ОС: Zenwalk Linux, Windows XP
Сообщение
fatboy » 01.10.2005 10:56
В одной довольно старой книге по Unix (The Unix programming environment - 1983) нашел примеры небольших программок на С. В них есть некоторые непонятные мне моменты, может кто разъяснит:
Ниже определяется функция FILE *efopen(char *name, char *mode). Так вот что означает FILE *efopen()?
А еще видел в исходниках ядра такую вещь:
Зачем здесь do while ?
Zenwalk 4.0
TOSHIBA Satellite A100
Asgard
Сообщения: 215
Статус: North Valfader
Сообщение
Asgard » 01.10.2005 12:30
так вот что означает FILE *efopen()?
насколько я понимаю, это просто устаревший стиль программирования. Если вы заметили, там ещё по-иному обозначаются переменные, передаваемые функции:
Код: Выделить всё
FILE* efopen(file, mode)
char *file, *mode;
{
/*...*/
}
Зачем здесь do while ?
Здесь уже был подобный топик, причём сравнительно недавно(правда ничего определённого там сказано так и не было)
sator arepo tenet opera rotas ;)
------------------------------------------------------------
LJ
JaGoTerr
Сообщения: 380
Сообщение
JaGoTerr » 01.10.2005 12:54
fatboy писал(а): ↑ 01.10.2005 10:56
А еще видел в исходниках ядра такую вещь:
Зачем здесь do while ?
Смотря что внутри. Возможно такое:
Код: Выделить всё
do {
...
if (a>b) {
break;
}
...
} while (0);
Таким образом избегается использование goto.
MedVed
Сообщения: 112
Сообщение
MedVed » 01.10.2005 20:57
Зачем здесь do while ?
Здесь уже был подобный топик, причём сравнительно недавно(правда ничего определённого там сказано так и не было)
Почему не было?
Вот этот топик. Уважаемый
darktiger все хорошо разъяснил.
МСВС 3.0/Linux Mandrake 8.0