the compiler shows the linear type representation it uses internally.
IND is `indirect', a pointer, or *
UCHAR is `unsigned char'
CONST is obviously `const'
so in
dumb_input.c:249[stdin:1718] argument prototype mismatch "IND UCHAR" for "IND
CONST CHAR": strlen
you're passing an unsigned char* to strlen, which expects const char*
(or char*)
the compiler could possibly translate them back to normal C declarator form
from the internal one, but on the other hand, in more subtle cases,
seeing them written in linear form can be helpful if you've got
a * or () in the wrong place.
newer versions of gcc will object too,
so you might as well get the types right now.