Olá @Jean, tudo bem?
Em C/C++ você precisa declarar a função sempre antes de utilizá-la. Por exemplo:
#include "stdio.h"
const char * retornaNome();
int main(int argc, char ** argv)
{
printf("%s\n", retornaNome());
return 0;
}
const char * retornaNome() {
return "Jean";
}
Você poderia implementar ela acima ou fazer como mencionei, mas a declaração fica sempre antes do uso, se não o compilador "reclama". Eu recomendo que em projetos pequenos que só você trabalhe, faça da forma que for mais confortável. Projetos maiores, que mais pessoas trabalhem, faça a declaração em arquivos HEADER (os famosos .h), e se possível as implementações em outros .c ou .cc. Por exemplo:
functions.h:
#ifndef __MY_FUNCTIONS__
#define __MY_FUNCTIONS__
const char * retornaNome();
#endif
functions.c:
#include "functions.h"
const char * retornaNome() {
return "Jean";
}
main.c:
#include <stdio.h>
#include <function.h>
int main (int argc, char ** argv)
{
printf("%s\n", retornaNome());
return 0;
}
Para compilar no linux:
gcc -o meu_programa main.c functions.c -I./
Se tiver alguma dúvida de boas práticas em C pode perguntar. Espero ter ajudado.