Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Single header which includes other headers

Tags:

c++

c

Recently, I encountered such approach of managing headers. Could not find much info on its problems on internet, so decided to ask here.

Imagine you have a program where you have main.c, and also other sources and headers like: person.c, person.h, settings.c, settings.h, maindialog.c, maindialog.h, othersource.c, othersource.h

sometimes settings.c might need person.c and main maindialog.c.

Sometimes some other source might need to include other source files. Typically one would do inside settings.c:

//settings.c
#include "person.h"
#include "maindialog.h"

But, I encountered approach where one has global.h and inside it:

//global.h
//all headers we need
#include "person.h"
#include "maindialog.h"
#include "settings.h"
#include "otherdialog.h"

Now, from each other source file you only have to include "global.h" and you are done, you get functionality from respective source files. Does this approach with one global.h header has some real problems?


1 Answers

This is to please both pedantic purists and lazy minimalists. If all sub-headers are done the correct way there is no functional harm including them via global.h, only possible compile time increase.

Subheader would be somewhat like

#ifndef unique_token
#define unique_token
#pragma once

// the useful payload

#endif
like image 180
bobah Avatar answered Aug 26 '26 05:08

bobah