Post

Ordenação de Header Files

Ao incluir primeiro o arquivo de cabeçalho que declara as funções que estão sendo definidas no arquivo de implementação, você garante que o compilador conheça todos os símbolos definidos nesse arquivo e possa resolver corretamente as referências a eles.

A inclusão de outros arquivos de cabeçalho do mesmo projeto a seguir ajuda a minimizar as dependências cruzadas entre as diferentes partes do código e pode facilitar o entendimento das relações entre as diferentes partes do código.

Incluir arquivos de cabeçalho de projetos não padrão após cabeçalhos locais pode ajudar a evitar conflitos com projetos não padrão e facilita a visualização da relação entre o código local e o código não padrão.

Incluir arquivos de cabeçalho padrão por último é uma prática comum, pois torna mais fácil ver quais cabeçalhos fazem parte da biblioteca padrão e quais não fazem.

É sempre bom documentar claramente quaisquer exceções à ordem, pois isso ajuda outros desenvolvedores a entender por que um determinado cabeçalho foi incluído fora de ordem e pode facilitar a manutenção do código no futuro.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// header file that declares the functions being defined in the source file
#include "myheader.h"

// other header files from the same project
#include "otherheader.h"

// header files from non-standard projects
#include <eigen/Eigen>
#include <boost/optional.hpp>
#include <QtCore/QString>

// standard header files
#include <iostream>
#include <vector>
#include <string>

// function definitions
void myFunction() {
  // implementation here
}

int main() {
  myFunction();
  return 0;
}
Esta postagem está licenciada sob CC BY 4.0 pelo autor.