Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

C - Arquivos de cabeçalho


Um arquivo de cabeçalho é um arquivo com extensão .h que contém declarações de função C e definições de macro a serem compartilhadas entre vários arquivos de origem. Existem dois tipos de arquivos de cabeçalho:os arquivos que o programador escreve e os arquivos que vêm com seu compilador.

Você solicita o uso de um arquivo de cabeçalho em seu programa incluindo-o com a diretiva de pré-processamento C #include , como você viu a inclusão de stdio.h arquivo de cabeçalho, que vem junto com seu compilador.

Incluir um arquivo de cabeçalho é igual a copiar o conteúdo do arquivo de cabeçalho, mas não o fazemos porque será propenso a erros e não é uma boa ideia copiar o conteúdo de um arquivo de cabeçalho nos arquivos de origem, especialmente se ter vários arquivos de origem em um programa.

Uma prática simples em programas C ou C++ é manter todas as constantes, macros, variáveis ​​globais do sistema e protótipos de função nos arquivos de cabeçalho e incluir esse arquivo de cabeçalho onde for necessário.

Incluir sintaxe


Os arquivos de cabeçalho do usuário e do sistema são incluídos usando a diretiva de pré-processamento #include . Tem as seguintes duas formas -
#include <file>

Este formulário é usado para arquivos de cabeçalho do sistema. Ele procura um arquivo chamado 'arquivo' em uma lista padrão de diretórios do sistema. Você pode anexar diretórios a esta lista com a opção -I ao compilar seu código-fonte.
#include "file"

Este formulário é usado para arquivos de cabeçalho de seu próprio programa. Ele procura um arquivo chamado 'arquivo' no diretório que contém o arquivo atual. Você pode anexar diretórios a esta lista com a opção -I ao compilar seu código-fonte.

Incluir operação


O #include A diretiva funciona direcionando o pré-processador C para verificar o arquivo especificado como entrada antes de continuar com o restante do arquivo de origem atual. A saída do pré-processador contém a saída já gerada, seguida pela saída resultante do arquivo incluído, seguida pela saída que vem do texto após o #include diretiva. Por exemplo, se você tiver um arquivo de cabeçalho header.h como segue −
char *test (void);

e um programa principal chamado program.c que usa o arquivo de cabeçalho, assim -
int x;
#include "header.h"

int main (void) {
   puts (test ());
}

o compilador verá o mesmo fluxo de token que veria se program.c fosse lido.
int x;
char *test (void);

int main (void) {
   puts (test ());
}

Cabeçalhos únicos


Se um arquivo de cabeçalho for incluído duas vezes, o compilador processará seu conteúdo duas vezes e resultará em um erro. A maneira padrão de evitar isso é incluir todo o conteúdo real do arquivo em uma condicional, como esta −
#ifndef HEADER_FILE
#define HEADER_FILE

the entire header file file

#endif

Essa construção é comumente conhecida como wrapper #ifndef . Quando o cabeçalho for incluído novamente, a condicional será falsa, pois HEADER_FILE está definido. O pré-processador ignorará todo o conteúdo do arquivo e o compilador não o verá duas vezes.

Inclui computados


Às vezes é necessário selecionar um dos vários arquivos de cabeçalho diferentes a serem incluídos em seu programa. Por exemplo, eles podem especificar parâmetros de configuração a serem usados ​​em diferentes tipos de sistemas operacionais. Você pode fazer isso com uma série de condicionais da seguinte forma -
#if SYSTEM_1
   # include "system_1.h"
#elif SYSTEM_2
   # include "system_2.h"
#elif SYSTEM_3
   ...
#endif

Mas à medida que cresce, torna-se tedioso, em vez disso, o pré-processador oferece a capacidade de usar uma macro para o nome do cabeçalho. Isso é chamado de inclusão calculada . Em vez de escrever um nome de cabeçalho como argumento direto de #include , você simplesmente coloca um nome de macro lá -
#define SYSTEM_H "system_1.h"
...
#include SYSTEM_H

SYSTEM_H será expandido e o pré-processador procurará system_1.h como se o #include tinha sido escrito dessa forma originalmente. SYSTEM_H pode ser definido pelo seu Makefile com uma opção -D.

Linguagem C

  1. C Manipulação de Arquivos
  2. E/S de arquivo Python
  3. Classe de arquivo Java
  4. Uma introdução aos arquivos STL
  5. Operações de E/S de arquivo Verilog
  6. C - E/S de arquivo
  7. Arquivos e fluxos C++
  8. C# - E/S de arquivo
  9. Python - E/S de arquivos
  10. O que é um arquivo triangular?