共用方式為


include_alias

指定的 short_filename 是用來做為別名 long_filename

#pragma include_alias( "long_filename", "short_filename" )
#pragma include_alias( <long_filename>, <short_filename> )

備註

有些檔案系統允許較長的標頭檔名超過 8.3 FAT 檔案系統限制。 編譯器不能只是截斷 8.3,以更長的名稱,因為較長的標頭檔名的前 8 個字元可能不是唯一的。 當編譯器遇到 long_filename 字串,它會替代 short_filename,而查看是否有標頭檔 short_filename 相反。 此 pragma 必須出現在之前的對應#include指示詞。 例如:

// First eight characters of these two files not unique.
#pragma include_alias( "AppleSystemHeaderQuickdraw.h", "quickdra.h" )
#pragma include_alias( "AppleSystemHeaderFruit.h", "fruit.h" )

#pragma include_alias( "GraphicsMenu.h", "gramenu.h" )

#include "AppleSystemHeaderQuickdraw.h"
#include "AppleSystemHeaderFruit.h"
#include "GraphicsMenu.h"

要搜尋的別名必須符合規格,以在 [拼字檢查情況也一樣,並使用雙引號或角括弧中。 Include_alias pragma 執行簡單的字串相符的檔案名稱。 執行其他的檔案名稱驗證。 例如,假設下列指示詞,

#pragma include_alias("mymath.h", "math.h")
#include "./mymath.h"
#include "sys/mymath.h"

沒有別名 (取代) 會執行,因為不完全相符的標頭檔的字串。 此外,做為引數以 /Yu 與 /Yc 編譯器選項的標頭檔名或 >hdrstop pragma,不會被取代。 例如,如果您的原始程式檔包含下列的指示詞,

#include <AppleSystemHeaderStop.h>

應該要對應的編譯器選項

/YcAppleSystemHeaderStop.h

您可以使用 include_alias pragma,以對應到另一個的任何標頭檔名。 例如:

#pragma include_alias( "api.h", "c:\version1.0\api.h" )
#pragma include_alias( <stdio.h>, <newstdio.h> )
#include "api.h"
#include <stdio.h>

請勿混合使用角括號括住的檔名,以雙引號括住的檔名。 例如,假設上述這兩個 # pragma include_alias 指示詞,編譯器會執行下列無替代#include指示詞:

#include <api.h>
#include "stdio.h"

此外,下列指示詞會產生錯誤:

#pragma include_alias(<header.h>, "header.h")  // Error

請注意檔名報告中的錯誤訊息,或預先定義的值為 __FILE__ 巨集] 後的檔案名稱,替換已經執行了。 比方說,在下列指示詞之後

#pragma include_alias( "VeryLongFileName.H", "myfile.h" )
#include "VeryLongFileName.H"

在 VERYLONGFILENAME 中發生錯誤。H 將產生下列錯誤訊息:

myfile.h(15) : error C2059 : syntax error

同時請注意不支援轉移。 提供下列的指示詞,

#pragma include_alias( "one.h", "two.h" )
#pragma include_alias( "two.h", "three.h" )
#include "one.h"

編譯器會搜尋兩個檔案。H 而非三個。H.

請參閱

參考

Pragma 指示詞 」 和 「 __Pragma 關鍵字