c-preprocessor - 预处理器:为什么要仔细检查是否需要包含头文件?
问题描述
通常会找到这样的代码:
#if !defined(THIS_HEADER_FILE)
#define THIS_HEADER_FILE
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
...
#endif // THIS_HEADER_FILE
如果在块#pragma once
内使用它的目的是什么?#ifdef
如果#pragma once
提供了一种更有效的方法来只包含一次标题,那么它不应该出现在块之前和#if !defined(THIS_HEADER_FILE)
块之外吗?