DT_REG undeclared (первое использование в этой функции) и -std = c99 - PullRequest
4 голосов
/ 25 февраля 2011

Я пишу программу на C, используя Eclipse CDT.Я хочу инициализировать свои циклы for следующим образом ...

for( int i = 0; i < 5; i++ )

, поэтому я добавил -std = c99 в командную строку gcc.У этого есть побочный эффект выброса ошибки: 'DT_REG' undeclared (первое использование в этой функции) для строки:

if( dir_ent->d_type != DT_REG )

DT_REG определен в dirent.h (который включен).Код прекрасно компилируется без -std = c99 в командной строке gcc.Чего мне не хватает?

1 Ответ

6 голосов
/ 25 февраля 2011

Что происходит с -std=gnu99?Похоже, что поле d_type нестандартно (см. на странице справки GNU libc "Записи каталога" ), и поэтому перечисление, представляющее типы записей каталога, отключено в строго совместимом режиме.Похоже, вам нужно определить _BSD_SOURCE (или _GNU_SOURCE), чтобы получить значения типа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...