[Windows编程] #pragma once 和#ifndef ... #define ... #endif 比较
生活随笔
收集整理的這篇文章主要介紹了
[Windows编程] #pragma once 和#ifndef ... #define ... #endif 比较
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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++編譯器也都實現了這個功能。
#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++編譯器也都實現了這個功能。
總結
以上是生活随笔為你收集整理的[Windows编程] #pragma once 和#ifndef ... #define ... #endif 比较的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: asp.net控件开发(二)-简单属性
- 下一篇: MED-V服务器部署,MED-V服务器系