Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rnta

retorno da função main

Recommended Posts

tenho uma dúvida...

 

eu posso dizer que main retorna NULL? ou é perigoso esse tipo de retorno.

 

int main () {
   fazerQualquerCoisa();

   return NULL;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode haver comportamento indefinido.

 

n1570, 6.3.2.3p5:

Any pointer type may be converted to an integer type. Except as previously specified, the

result is implementation-defined. If the result cannot be represented in the integer type,

the behavior is undefined. The result need not be in the range of values of any integer

type.

Portanto, haverá comportamento indefinido caso NULL não possa ser representado como (int). Lembrando que a representação de NULL (ou (void *) 0, ou (T *) 0, ...) não necessariamente tem todos os bits iguais a 0. Portanto, mesmo que a representação de (int) da implementação tenha (int) 0 como um objeto de tamanho sizeof (int), com todos os bits zerados, não há garantia de que (int) NULL não causará undefined behavior.

 

Resumindo: use um inteiro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.