annotate include/README @ 0:1e69eae27ed0

add code
author Dennis <dennis@denniscm.com>
date Fri, 25 Aug 2023 17:23:11 +0100
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
1
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
2 This directory is intended for project header files.
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
3
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
4 A header file is a file containing C declarations and macro definitions
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
5 to be shared between several project source files. You request the use of a
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
6 header file in your project source file (C, C++, etc) located in `src` folder
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
7 by including it, with the C preprocessing directive `#include'.
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
8
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
9 ```src/main.c
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
10
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
11 #include "header.h"
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
12
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
13 int main (void)
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
14 {
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
15 ...
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
16 }
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
17 ```
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
18
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
19 Including a header file produces the same results as copying the header file
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
20 into each source file that needs it. Such copying would be time-consuming
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
21 and error-prone. With a header file, the related declarations appear
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
22 in only one place. If they need to be changed, they can be changed in one
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
23 place, and programs that include the header file will automatically use the
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
24 new version when next recompiled. The header file eliminates the labor of
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
25 finding and changing all the copies as well as the risk that a failure to
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
26 find one copy will result in inconsistencies within a program.
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
27
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
28 In C, the usual convention is to give header files names that end with `.h'.
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
29 It is most portable to use only letters, digits, dashes, and underscores in
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
30 header file names, and at most one dot.
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
31
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
32 Read more about using header files in official GCC documentation:
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
33
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
34 * Include Syntax
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
35 * Include Operation
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
36 * Once-Only Headers
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
37 * Computed Includes
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
38
1e69eae27ed0 add code
Dennis <dennis@denniscm.com>
parents:
diff changeset
39 https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html