Respostas:
Idealmente, todo o trabalho que possa ser considerado parte do código reutilizável deve ser criado na forma de biblioteca . O trabalho de balanceamento é uma aplicação que deve ser separada onde main()
residirá.
Mas main()
sozinho não precisa ficar isolado. Funções como parse_arguments(argc,argv)
devem estar junto com main em vez de separadas.
Nosso padrão de codificação requer que main () esteja em main.c. Outros métodos no main.c tendem a ser manipuladores de erro de alto nível e funções auxiliares para main (consulte a resposta @Dipan "parse_arguments", além de coisas como "display_help" etc.
Uma boa regra a seguir é quando uma função começa a fazer mais do que dar suporte ao aplicativo em execução e começa a fazer lógica de negócios, é hora de sair do main.c
Existem duas regras básicas:
Implementar um padrão de codificação afirmando que main () deve sempre estar localizado em um arquivo chamado main.c é uma prática boa e comum. Esse arquivo, assim como o próprio main (), não devem conter confusão desnecessária.
Idealmente, main () e main.c devem conter apenas o seguinte
Um ponto de entrada limpo em um arquivo separado faz com que o fluxo de código seja facilmente compreendido e mantido. Eu sempre tive o hábito de manter uma função main () muito pequena e concisa em um arquivo diferente, a partir de onde eu posso rastrear as etapas do programa. Por uma questão de limpeza, é bom mantê-lo separado.