In this case, "multiple" modifies "includes" and not "guards". Thus, "enable guards" and "multiple inclusion of guards" are one and the same. That is, they protect against multiple inclusions of the same file.
The list is created in this way: firstly, all files are considered for the list. However, the main file is excluded; and files with security enabled; files opened with #import; and files with #pragma once.
The reasons for using guards are because they make the header file idempotent, and they can reduce compilation time. IMO, they are best practice for C and C ++.
source
share