题目
为了防止头文件[1]被重复包含,常用的模式是()。 A. pragma onceB. 两者皆可C. include_guardD. ifndef...#define...#endif
为了防止头文件[1]被重复包含,常用的模式是()。
- A. pragma once
- B. 两者皆可
- C. include_guard
- D. ifndef...#define...#endif
题目解答
答案
B
解析
本题考查C++头文件防止重复包含的两种常用方法。关键在于理解两种主要机制:
- include guard(#ifndef...#define...#endif结构):通过宏定义判断头文件是否已包含。
- #pragma once指令:直接指示编译器确保头文件仅被包含一次。
核心思路是明确两种方法的实现原理和使用场景,判断题目选项中哪些属于常用模式。
选项分析
-
A. pragma once
#pragma once
是编译指令,直接告知编译器该头文件只需包含一次。优点是简洁,但需依赖编译器支持(非C++标准)。 -
C. include_guard
实际上是#ifndef...#define...#endif
的别称,属于传统方法。优点是标准兼容性好,适用于所有C++编译器。 -
D. ifndef...#define...#endif
与C选项本质相同,是include guard的具体实现形式。 -
B. 两者皆可
正确,因为#pragma once
和ifndef...#define...#endif
均为常用且有效的防重复包含方法。