Um programa C terminará em uma das três condições:
- O programa retorna da função
main. Se o valor de retorno for 0, isso indica sucesso, caso contrário, o valor de retorno é o estado de saída. O C99 também permite (mas desencoraja) uma funçãomaincom um tipo de retornovoid, em que o retorno demaintem a mesma semântica que retornar 0 de um main com o tipo de retornoint. - O programa retorna uma das funções
exit:exit,_exitou a nova funçãoquick_exitem C11. Todas essas funções não retornam e todas têm o efeito de encerrar o programa, mas o que elas realmente fazem é diferente (por exemplo, quick_exit libera buffers, mas não executa honrasatexitchamadas). - O sistema operacional mata o programa de alguma forma, por exemplo, porque o programa faz algo que não é permitido fazer.