Oder Variante 3:
xxx.c:
1 | //zuerst Systemheader
|
2 | #include <avr/io.h>
|
3 | #include <avr/interrupt.h>
|
4 | #include <inttypes.h>
|
5 |
|
6 | //dann eigene Header
|
7 | #include "xxx.h"
|
8 |
|
9 | void func( void )
|
10 | {
|
11 | ...
|
12 | }
|
13 |
|
14 | ...
|
xxx.h:
1 | #ifndef XXX_H_INCLUDED
|
2 | #define XXX_H_INCLUDED
|
3 |
|
4 | void func(void);
|
5 |
|
6 | #endif
|
Generell: In einem Header File sollten nur die Includes rein, die für
dieses Header File notwendig sind. Nicht mehr.
Machst du dort einen Rundumschlag, dann drängst du dem Verwender dieses
Include Files zusätzliche #include auf, die der vielleicht gar nicht
haben will.
Beispiel:
Wenn ich dein xxx.h verwende
1 | #include "xxx.h"
|
2 |
|
3 | int main()
|
4 | {
|
5 | foo();
|
6 | }
|
dann kriege ich alleine durch den #include "xxx.h" den Header
interrupt.h mit hinein, den ich weder benötige noch dort haben will.
Wenn jedes File, *.c oder *.h, immer nur die #include macht, die es
tatsächlich braucht, hast du kürzest mögliche Compilezeit und auch die
Wartung wird einfacher, weil es keine Überraschungen gibt.