O que é melhor para uma função da linguagem C retornar 1 ou retornar 0?

Basicamente, ninguém iria enfiar grandes pedaços de código C na função main(). Uma abordagem melhor é dividir o código em diferentes módulos funcionais, tanto quanto possível, de acordo com os princípios de alta taxa de reutilização e baixo acoplamento, e encapsulá-los em funções.

A combinação do código da linguagem C está em constante mudança, portanto, a função da função pode ser mais complexa, e entradas diferentes geralmente produzem resultados de saída diferentes.

                                   Primeiro, o valor de retorno da função da linguagem C

A função da linguagem C pode expressar o resultado de saída pelo valor de retorno. Por exemplo, o valor de retorno da função log() retornará valores diferentes de acordo com diferentes entradas. Para outro exemplo, definimos uma função myopen() para abrir um arquivo. Então, essa função pode abrir o arquivo com sucesso ou não. Neste momento, "sucesso" e "falha" podem ser distinguidos pelo retorno valor.

Claro, pode haver muitas razões para a falha da função myopen(), mas este não é o foco deste artigo. Este artigo está mais preocupado com qual valor deve ser usado para indicar "sucesso" e qual valor deve ser usado para indicar "falha".

De acordo com a sintaxe da linguagem C, 0 significa falso, diferente de zero (geralmente 1) significa verdadeiro, então a função também usa o valor de retorno de 0 para indicar "falha" e o valor de retorno de 1 para indicar "sucesso"?

                                 Em segundo lugar, a indústria " regras ocultas"

É claro que as funções da linguagem C podem usar um valor de retorno de 0 para "falha" e um valor de retorno de 1 para "sucesso".

Na verdade, que tipo de valor de retorno uma função da linguagem C usa para indicar sucesso ou falha é apenas uma convenção artificial, e o chamador da função pode seguir essa "convenção".

A linguagem C também tem "regras não ditas na indústria", no entanto, para funções gerais, a maioria dos programadores de linguagem C geralmente usa o valor de retorno de 0 para indicar sucesso e um valor diferente de zero para indicar falha. Portanto, se esperamos que as funções que definimos possam ser usadas com satisfação pela maioria das pessoas, é melhor não fazer o contrário e seguir as "regras tácitas da indústria".

Quando você pensa sobre isso, há uma razão pela qual as funções C usam um valor de retorno de 0 para indicar sucesso. O valor de retorno de uma função de linguagem C mais geral não necessariamente possui apenas dois valores possíveis (sucesso/falha), ele também pode retornar um valor de retorno correspondente à causa do erro. Em suma, há apenas uma possibilidade de uma função ter sucesso, mas há muitas possibilidades de uma função falhar.

Os números reais são 0 ou não-0, então 0 pode ser considerado como um valor "único" especial, e o valor de retorno "único" de 0 é usado para indicar o único "sucesso" e vários valores de retorno diferentes de zero indicam que a falha por vários motivos é, sem dúvida, melhor.

Claro, também podemos dizer "o número real é 1 ou não 1", mas isso obviamente não é uma "regra tácita da indústria".     

 Por exemplo, podemos especificar que se a função myopen() falhar porque "o arquivo ou diretório não existe", ela retornará -1, e se falhar devido a "permissões insuficientes", ela retornará -2. Ambos -1 e -2 são "diferentes de zero", e sucesso é o oposto de falha, o oposto de "diferente de zero", e a função myopen() usa um valor de retorno de 0 para indicar sucesso.

3. Outra " regra oculta " da indústria                   entre os programadores de linguagem C

Claro, também existe uma "regra tácita da indústria" entre os programadores de linguagem C. Se a função definida é uma função booleana, ou seja, o valor de retorno é definido explicitamente usando uma palavra-chave semelhante a bool, ou o nome da função é semelhante a is_true(), então obviamente a sintaxe da linguagem C deve ser seguida neste momento, e o valor "true" é usado para indicar sucesso.Um valor "false" indica falha.

if( is_true() )
  printf("true\n");

Observe as duas linhas acima do código da linguagem C. Obviamente, a função booleana que segue a sintaxe da linguagem C é mais conveniente para os programadores escreverem o código da classe de julgamento booleana.

                                          4. Resumo

Este artigo discute principalmente o problema do valor de retorno da função no desenvolvimento de programas em linguagem C. Pode-se ver que que tipo de valor de retorno é usado para indicar sucesso e que tipo de valor de retorno é usado para indicar falha é, na verdade, apenas um acordo artificial.

No entanto, se esperamos que o código que escrevemos possa ser usado com satisfação pela maioria de nossos pares, é melhor respeitar as "regras tácitas da indústria".

Claro, se você quiser que nosso código de linguagem C seja mais amplamente aplicável, você pode usar as macros EXIT_SUCCESS e EXIT_FAILURE predefinidas no arquivo de cabeçalho padrão <stdlib.h>.

おすすめ

転載: blog.csdn.net/yx5666/article/details/127388125