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çãomain
com um tipo de retornovoid
, em que o retorno demain
tem a mesma semântica que retornar 0 de um main com o tipo de retornoint
. - O programa retorna uma das funções
exit
:exit
,_exit
ou a nova funçãoquick_exit
em 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 honrasatexit
chamadas). - O sistema operacional mata o programa de alguma forma, por exemplo, porque o programa faz algo que não é permitido fazer.