c++ 防止头文件重复include问题

来源:百度知道 编辑:UC知道 时间:2024/05/25 08:29:03
我知道这种常用的方式可以防止.h文件重复include
#if!defined ……
#define ……

在有些地方发现了这段代码
#if MSC_VER >1000
#pragma once
#endif
查了一下也是防止重复include

有什么区别吗?
第二种方式要检测MS的C编译器版本,为什么?

希望大家解答一下

你如果是用的编译器自带的文件,它们会自动判别的。
如果你自己定义的头文件
简单的在头文件的这样就可以了啊

myh1.h
#if! defined MYH1
#define MYH1
#endif

这样你怎么include都保证不会重复。

#pragma once
这个指令是后来才加的,以前的版本没有。

新的 vc 2008 生成的代码, 只在开头地方加 #pragma once 一句了,其他的都省略了。

常使用的#ifndef和#endif语句。
比如说在头文件中要#define IRremote_h,则可以使用
#ifndef IRremote_h
#define IRremote_h
//如果重复,这里的代码将被跳过

#endif

因为#pragma once是后来引入的功能。必须要在MSC版本数满足要求时才能使用。