When precompiling a header file, the compiler preprocesses the file too. In other words, a precompiled file is preprocessed in the context of its precompilation, not in the context of its compilation.
The preprocessor also tracks macros used to guard #include files to reduce parsing time. Thus, if a file’s contents are surrounded with:
#ifndef FOO_H
#define FOO_H
// file contents
#endif
The compiler will not load the file twice, saving some small amount of time in the process.