Вы вызываете функцию, у которой нет прототипа в точке вызова. C89 говорит, что это разрешено, но ваша задача - убедиться, что функция вызывается с аргументами, которые верны для параметров, с которыми она в конечном итоге определяется. Так как они не совпадают в этом случае, неопределенное поведение.
Включите больше предупреждений компилятора (-Wall
в случае gcc).