Declarar cada função em um arquivo separado é uma boa ou má prática em C

Declarando cada função num arquivo C separado mantém a função main mais enxuta contendo apenas as chamadas de métodos e fica mais fácil fazer modificações estando as funções separadas, mas isso é uma boa ou má pratica de programação em C?