Avoid using `int` whenever possible (use `{,un}signed` instead); prototypes do not need no parameter names; general cleanup of prototypes