Actually, in C, you only have to declare a function if its return value or one of its arguments is not a word-sized integer. That's a feature inherited from the B programming language (which had the word-sized integer as its only type), I guess for compatibility. That's also why if you don't specify the type of a variable it defaults to int.