Причина сбоя заключается в том, что #include<stdio.h>
заменяется содержимым stdio.h
, а когда вы заменяете int
на char
внутри содержимого, вы нарушаете некоторые объявления.
С /usr/include/bits/types.h
, который включается косвенно через stdio.h
.
.
typedef unsigned short int __u_short;
.
.
Ясно, что когда вы заменяете int
на char
, оно становится:
typedef unsigned short char __u_short;
Что приводит к ошибке компиляции, поскольку short
нельзя применить к типу данных char
.