C проанализирует ваш файл сверху вниз. Он должен по крайней мере понять сигнатуру функции, прежде чем сможет проверить ее использование. Вот почему вы столкнулись с проблемой, которая у вас есть.
Если вы хотите сообщить C о функции до того, как она будет определена, вам нужно создать прототип функции. По сути, это добавление сигнатуры функции в файл для обработки Си.
Например, вы можете создать прототип test1 со следующим
void test1();
Тогда вы можете позвонить до того, как он будет определен
void test1();
void test() { test1(); }
void test1() {}