#pragma是與編譯器有關的一些設定。包含#pragma once 的檔案在編譯時隻被編譯一次,多用于那些通常不會改變的不用重新編譯的檔案,這樣可以提高編譯速度。
與#
ifndenf的差別:
#ifndef 還有其它作用,防止頭檔案重複引用隻是其中一個應用而已
#pragma 隻有微軟支援
vc将作如下處理:
#ifndef
#define
。。。。。。
#endif
他讀到#ifndef之後,如果已經定義過了,就會跳過這一大片,一直到#endif為止。這将增加build時間,因為每次compiler都會打開這個檔案,然後搜尋全檔案一遍
而如果碰到了#pragma once,他就會立刻停止,關閉打開的這個檔案。在某種程度上減少了build時間。
一般用法
#ifndef
#define
#pragma once
.....
#endif