I've a doubt about a sentence in this paragraph of the standard C11:
5.1.1.1 Program structure
A C program need not all be translated at the same time. The text of the program is kept in units called source files, (or preprocessing files) in this International Standard. A source file together with all the headers and source files included via the preprocessing directive #include is known as a preprocessing translation unit.
At first it says that the text of a program is kept in units called source files. After it says that a source file together with headers and source files are said to be preprocessing translation unit.
So is a source file a different entity respect to a header file or a source file include both?
The term source file (or preprocessing file) reflects to both
.c
source file and.h
header. The C Standard does not differentiate them as such.It is explicitely mentioned in K. N. King's "C Programming: A Modern Approach" book (section 15.2).