По умолчанию int
.
Предупреждение компилятора показывает, что происходит:
#1 with x86-64 gcc 8.2
<source>:1:9: warning: type defaults to 'int' in declaration of 't' [-Wimplicit-int]
typedef t;
Начиная с C99 и далее, неявное int
Правило было удалено.Так что это не применимо с C99 и далее.
Если вы используете опцию компилятора -pedantic-errors
в GCC (что означает строгое соответствие стандарту), выдает ошибку .См. здесь .
Если вам интересно, соответствующий раздел в C89 стандарт, который позволил это:
3.5.2 Спецификаторы типа
Каждый список спецификаторов типа должен быть одним из следующих наборов;спецификаторы типа могут встречаться в любом порядке, возможно, смешиваться с другими спецификаторами объявления.
- void
- char
- подписанный символ
- неподписанный символ
- short, подписанное short, короткое int или подписанное short int
- unsigned short или unsigned short int
- int, подписанное, подписанное int или без типаСпецификаторы
Таким образом, в C99 последняя часть того, что было выделено выше ( или без спецификаторов типа ), была удалена.