首页 > 其他 > 详细

#pragma once与#ifndef

时间:2019-05-31 16:42:27      阅读:108      评论:0      收藏:0      [点我收藏+]

在C/C++中,在使用预编译指令#include的时候,为了防止重复引用造成二义性的两种方法。

#ifndef

它不光可以保证同一份文件不会被包含两次,也能够保证不同文件完全相同的内容不会被包含两次。但,同样的,如果自定义的宏名不小心“重名”了,两份不同的文件使用同一个宏名进行#ifndef,那么会导致编译器找不到声明的情况(被编译器判定为重定义而屏蔽了)。

此外,由于编译器每次都需要打开头文件才能判定是否有重复定义,因此在编译大型项目时,#ifndef会使得编译时间相对较长,因此一些编译器逐渐开始支持#pragma once的方式(Visual Studio 2015新建头文件会自带#pragma once指令)。

#ifndef 
     
#define   

//code  

#endif  

#pragma once

一般来说由编译器提供,是一个非标准但被广泛支持的方式(有些编译器不支持)

好处:操作简单,效率高

缺点:没有#ifndef灵活,兼容(#ifndef不受编译器的限制)

#pragma once与#ifndef

原文:https://www.cnblogs.com/elong1995/p/10955524.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!