Linguagem C / arquivo de cabeçalho / definir variáveis / definições duplicadas ao compilar

Pode ser definido, mas não é recomendado definir variáveis ​​no arquivo de cabeçalho.


Como muitos arquivos .c podem conter arquivos .h, isso significa que essa variável terá uma cópia em muitos arquivos .c. Se este for um projeto de vários arquivos, durante a fase de vinculação, o vinculador irá reclamar que existem várias variáveis ​​globais com o mesmo nome de variável, resultando em erros de link.


Portanto, o arquivo .h geralmente só pode conter declarações de variáveis ​​globais, declarações de funções e definições de macro.Não é recomendado definir variáveis ​​no arquivo .h.


Se você declarar uma variável em um arquivo de cabeçalho e, em seguida, chamar o arquivo de cabeçalho em arquivos de origem diferentes, isso fará com que o compilador relate um erro de que a variável é definida repetidamente (mesmo se #ifndef xxxxx for escrito).
A solução é declarar a variável no arquivo .c correspondente e externar a variável no arquivo de cabeçalho.
Em example.c
int a = 0;

Em example.h

extern int a;

Então, outros arquivos c #include "example.h"estão bem.

Acho que você gosta

Origin blog.csdn.net/qq_36783816/article/details/112916516
Recomendado
Clasificación