#pragmaonce及#ifndef的区别.docVIP

  • 3
  • 0
  • 约1.72千字
  • 约 3页
  • 2017-05-31 发布于北京
  • 举报
#pragma once 和 #ifndef的区别 #pragma once和#ifdef都是可以避免同一个文件被include多次。在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。 #pragma once方式 这个是编译器相关,就是说在这个编译系统上能用,但是在其他编译系统,不一定行,也就是说移植型差。不过现在基本上已经是每个编译器都有这个定义了。编译器提供保证,同一个文件不会被包含多次。注意这里所说的“同一个文件”是指物理上的一个文件,而不是指内容相同的两个文件。于是不必再费劲想个宏名了,当然也就可以避免宏的名字冲突问题了。缺点:如果某个头文件有多份拷贝,本方法不能保证他们不被重复包含。 // 看看VC自带的Stdarg.h头文件中是怎么使用#pragma once的 // 毕竟微软的东西权威嘛 - -|| // #if _MSC_VER 1000 #pragma once #endif #ifndef _INC_STDARG #define _INC_STDARG #include vadefs.h #define va_start _crt_va_start #define va_arg _crt_va_arg #define va_end _crt_va_end #endif /* _INC_STDARG */ 此时

文档评论(0)

1亿VIP精品文档

相关文档