erro: tipos conflitantes por motivos e soluções de erro

Razão um

Não há declaração de função, e a função é definida após a função principal

Causa dois

Arquivos de cabeçalho são referenciados ciclicamente, considere a ordem de inclusão
ou uso

#ifndef CAPITAL_FILENAME
#define CAPITAL_FILENAME

// main body

#endif /* CAPITAL_FILENAME */

Razão três

A declaração da função do arquivo de cabeçalho e os parâmetros de definição da função são diferentes, como

O arquivo de cabeçalho declara void test (const char * buf), mas é escrito como void test (char * buf);

Razão quatro

O tipo de parâmetro usado pela função é um tipo personalizado (como uma estrutura), e a definição de um tipo personalizado está entre a declaração da função e a definição da função, porque na declaração da função, a estrutura não

Não é definida e não é reconhecida como uma estrutura pelo sistema. Quando a função é definida posteriormente, a estrutura já está definida e o sistema a reconhece como uma estrutura, o que faz com que o sistema pense que a declaração e a definição usam parâmetros diferentes tipos, portanto, o problema acima;

Razão 5

No Linux, ao compilar o arquivo de cabeçalho, um arquivo intermediário pré-compilado (.h.gch) aparecerá. Quando todo o arquivo for compilado novamente, se o arquivo (.h.gch) existir, o arquivo (.h) será ser usado diretamente .gch) em vez de compilar o arquivo .h. Neste momento, se você alterar o arquivo .h e continuar a compilar, isso causará inconsistências entre a declaração e a definição. Embora a declaração e a definição sejam consistentes em o arquivo, mas, na verdade, o sistema não usa o arquivo (.h) que você alterou durante a compilação, mas usa diretamente o arquivo .h.gch que você compilou antes da modificação (este erro é geralmente difícil de encontrar, se você encontrá-lo em seu próprio diretório. h.gch deve ser atualizado a tempo).

Referência

https://blog.51cto.com/10901086/1903340

Acho que você gosta

Origin blog.csdn.net/weixin_39591031/article/details/112824488
Recomendado
Clasificación