The custom renaming to S_ or PL_ comes from C having no namespaces and Perl being embeddable into other applications. There you need to fake a namespace by prefixing all exported symbols with whatever you need.
In theory, ideally, Perl C code wouldn't use int or char at all, but either Perl-internal data types like SV (which can hold an int) or whatever Perl defines to be the data type for holding integral numbers (UINT ?) or string length (SvLENGTH ?). Of course, at the boundary to the C library, you won't get around actually touching native data types.