The commonly used definition of a translation unit is what comes after preprocessing (header files inclusions, macros, etc along with the source file). This definit
In the second line you quoted:
The text of the program is kept in units called source files, (or preprocessing files) in this International Standard
If there are two source files then there are two preprocessing files, and therefore two preprocessing translation units, and therefore two translation units. One corresponding to each source file.
The standard doesn't define source file. I guess the compiler could say "I'm making up my own version of 'source file' by declaring that file1.c
and file2.c
are not source files after all!" and concatenate them, but this would be at odds with programmer expectations. I think you would have a hard time arguing that file1.c
is not a source file.