Рассмотрим следующую программу: (см. живую демонстрацию здесь).
#include <stdio.h>
struct Test
{
int a;
};
typedef struct Test t;
typedef struct Test t;
int main()
{
t T={9};
printf("%d",T.a);
}
Программа отлично компилируется в компиляторе C11, но не компилируется в компиляторе C99. Почему? Какова причина? Мой компилятор gcc 4.8.1 выдает следующие предупреждения:
[Warning] redefinition of typedef 't' [-Wpedantic]
[Note] previous declaration of 't' was here