/*
2017-12-20 创建人:Ruo_Xiao
*/
一、#pragma once
- 作用:只要在头文件的最开始加入这条指令就能够保证头文件被编译一次。
- 最先应用与MicroSoftware Visual C++中,后来陆续被其他编译器所支持,所以不支持跨平台。
- 只能对此文件有效,若一个文件有多个拷贝,且工程包含了这些拷贝文件,那么这些文件都会加入到工程中。
二、#ifndef … #define … (声明) #endif
- 作用:防止该头文件被重复包含。
- 受C/C++语言标准支持,所有支持C++的编译器都支持此预编译指令,所以支持跨平台。
- 只要文件内容相同就可防止,即使一个文件的拷贝文件亦可避免重复包含,因为这个是通过宏指令进行判断的。
- 缺点:如果ifndef使用的宏之前已经存在了,那么这种方法就会失效,会报找不到类型声明的错误。
三、实例代码
#ifndef __ClassName__H__
#define __ClassName__H__
(各种声明)
#endif
----------
#pragma once
(各种声明)
本文介绍了两种常见的头文件保护方式:#pragma once 和 #ifndef...#define...(声明)#endif。这两种方式都能有效地避免头文件被重复包含,但它们的工作原理及跨平台支持情况有所不同。#pragma once 是一种较新的方法,其简洁易用,但在一些旧版编译器中可能不受支持;而 #ifndef...#define...(声明)#endif 方法则更为传统,几乎在所有的编译环境中都能工作。
100

被折叠的 条评论
为什么被折叠?



