Solving the "wrong implicit function prototype" with function declarations