Aracılığıyla paylaş


include_alias pragma

bir yönergesinde alias_filename bulunduğunda, derleyicinin yerine actual_filename yerleştirdiğini belirtir.#include

Sözdizimi

#pragma include_alias( "alias_filename" , "actual_filename" )
#pragma include_alias(<<>,alias_filename actual_filename>)

Açıklamalar

yönergesi include_aliaspragma , kaynak dosyalar tarafından eklenen dosya adları için farklı adlara veya yollara sahip dosyaları değiştirmenizi sağlar. Örneğin, bazı dosya sistemleri 8.3 FAT dosya sistemi sınırından daha uzun üst bilgi dosya adlarına izin verir. Daha uzun üst bilgi dosya adlarının ilk sekiz karakteri benzersiz olmadığından, derleyici uzun adları 8,3 olarak kesemez. Derleyici bir yönergede alias_filename dizesini her gördüğünde, bunun yerine actual_filename adını koyar.#include Ardından actual_filename üst bilgi dosyasını yükler. Bu pragma , ilgili #include yönergelerden önce görünmelidir. Örnek:

// 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"

Aranacak diğer ad belirtim ile tam olarak eşleşmelidir. Büyük/küçük harf, yazım ve çift tırnak işareti veya açılı ayraç kullanımı eşleşmelidir. , include_aliaspragma dosya adlarında basit dize eşleştirmesi yapar. Başka bir dosya adı doğrulaması gerçekleştirilmez. Örneğin, aşağıdaki yönergeler göz önünde bulundurulduğunda,

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

üst bilgi dosyası dizeleri tam olarak eşleşmediğinden diğer ad değiştirme işlemi yapılmaz. Ayrıca, ve /Yc derleyici seçeneklerinde /Yu bağımsız değişken olarak kullanılan üst bilgi dosya adları veya hdrstoppragmayerine kullanılmaz. Örneğin, kaynak dosyanız aşağıdaki yönergeyi içeriyorsa,

#include <AppleSystemHeaderStop.h>

ilgili derleyici seçeneği şöyle olmalıdır:

/YcAppleSystemHeaderStop.h

herhangi bir üst bilgi dosya adını başka bir adla eşlemek için öğesini kullanabilirsiniz include_aliaspragma . Örnek:

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

Çift tırnak içine alınmış dosya adlarını köşeli ayraç içine alınmış dosya adlarıyla karıştırmayın. Örneğin, yukarıdaki iki #pragma include_alias yönerge göz önüne alındığında, derleyici aşağıdaki #include yönergelerde hiçbir değiştirme yapmaz:

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

Ayrıca, aşağıdaki yönerge bir hata oluşturur:

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

Hata iletilerinde veya önceden tanımlanmış __FILE__ makronun değeri olarak bildirilen dosya adı, değiştirme tamamlandıktan sonra dosyanın adıdır. Örneğin, aşağıdaki yönergelerden sonraki çıkışa bakın:

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

içindeki VERYLONGFILENAME.H bir hata aşağıdaki hata iletisini oluşturur:

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

Geçişliliğin desteklenmediğini de unutmayın. Aşağıdaki yönergeler göz önünde bulundurulduğunda,

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

derleyicisi, yerine dosyasını two.hthree.harar.

Ayrıca bkz.

Pragma yönergeleri ve __pragma ve _Pragma anahtar sözcükleri