您的位置:首页 > 其它

#pragma once 和#ifndef ... #define ... #endif 比较

2009-05-04 14:59 429 查看
最近看Direct3D SDK中的代码,正好对这个还不是很清楚,今天看到就转过来了,方便以后查阅。

原创文章的版权属于作者,出处和作者信息(http://blog.csdn.net/WinGeek/)

C++中防止头文件被多次include 的常见方式有:

1) 用#ifndef ... #define ... #endif 宏

#ifndef __MYHEADER_H__
#define __MYHEADER_H__

// Here is my class ...

#endif

2) 用 #pragma once

#pragma once

// Here is my class ...

建议使用 #pragma once ,原因:

1) 代码简洁,维护性比较好。 #pragma once 显然比 #ifndef ... 要简短许多,而且避免了__MYHEADER_H__ 重定义 或者 #endif 包含范围错误的情况

2) 编译速度快。 使用 #ifndef 的话,编译器每次看到#include这个文件都需要读入文件,解析代码。 而使用#pragma once 编译器根本不会重复打开文件, 大大提高了效率。

以上两点在大型C++工程中表现得尤为突出。

注: #pragma once 不是国际标准, 只是微软C++ 的一个功能, 但现在多数主流C++编译器也都实现了这个功能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: