Difficulty: Easy
Correct Answer: Correct
Explanation:
Introduction / Context:
Multiple inclusion of the same header can produce redefinition errors and long compile times. This question asks whether C has a standard technique to prevent such duplicate inclusions.
Given Data / Assumptions:
Concept / Approach:
The typical solution is an include guard using preprocessor conditionals at the top of a header file: #ifndef MY_HEADER_H#define MY_HEADER_H/* header content */#endif. Many compilers also support #pragma once
as a non-standard but widely available alternative. These mechanisms ensure the header’s contents are processed only once per translation unit.
Step-by-Step Solution:
Add a unique macro guard to the header.First inclusion defines the macro; later inclusions see it defined and skip contents.Compilation proceeds without multiple-definition issues.
Verification / Alternative check:
Intentionally include the same header twice with and without guards and observe the difference in diagnostics.
Why Other Options Are Wrong:
Incorrect — contradicted by standard practice. Linker options — linking occurs after compilation; it cannot prevent preprocessing duplicates. Only in C++ — C supports include guards equally.
Common Pitfalls:
Using non-unique macro names for guards; mixing relative and angled includes causing unintended multiple inclusions of the same header with different paths.
Final Answer:
Correct
Discussion & Comments