#pragma once与#ifndef的区别?

/*
2017-12-20 创建人:Ruo_Xiao
*/

一、#pragma once

  1. 作用:只要在头文件的最开始加入这条指令就能够保证头文件被编译一次。
  2. 最先应用与MicroSoftware Visual C++中,后来陆续被其他编译器所支持,所以不支持跨平台。
  3. 只能对此文件有效,若一个文件有多个拷贝,且工程包含了这些拷贝文件,那么这些文件都会加入到工程中。

二、#ifndef … #define … (声明) #endif

  1. 作用:防止该头文件被重复包含。
  2. 受C/C++语言标准支持,所有支持C++的编译器都支持此预编译指令,所以支持跨平台。
  3. 只要文件内容相同就可防止,即使一个文件的拷贝文件亦可避免重复包含,因为这个是通过宏指令进行判断的。
  4. 缺点:如果ifndef使用的宏之前已经存在了,那么这种方法就会失效,会报找不到类型声明的错误。

三、实例代码

#ifndef __ClassName__H__
#define __ClassName__H__
(各种声明)
#endif----------#pragma once
(各种声明)


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部