Earlier quoted context omitted.
puts and printf aren't keywords, they're regular functions.
Well, sort of. Specifically, printf is an oddball function because it uses the varargs mechanism, and the whole format strings mechanism is inherently risky because it effectively bypasses the type system and says "trust me." Back when I was learning C, on a Mac with THINK C, misusing printf was a sure-fire way to crash the computer very quickly, especially since misaligned accesses of 16-bit or 32-bit words caused c…
And it's C; everything bypasses the type system and says "trust me". Memory allocation bypasses the type system and says "trust me".
struct foo* foo = malloc(sizeof foo);
// yep, this is definitely the right number of bytes
If you want strong typing (!= static typing), C is not the language you should be using, printf or no printf.