Повторяющиеся определения типов - недопустимы в C, но допустимы в C ++?

Я хотел бы получить стандартную ссылку, почему следующий код вызывает предупреждение о соответствии в C (проверено с помощью gcc -pedantic ; "переопределение typedef") , но нормально в C ++ ( g ++ -pedantic ):

typedef struct Foo Foo;
typedef struct Foo Foo;

int main() { return 0; }

Почему я не могу повторно определять typedef в C?

(Это имеет практическое значение для структурирования заголовка проекта C .)

44
задан Kerrek SB 21 December 2011 в 19:03
поделиться