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

我知道这种常用的方式可以防止.h文件重复include
#if!defined ……
#define ……

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

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

希望大家解答一下

相似回答