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_alias
pragma , 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_alias
pragma 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 hdrstop
pragmayerine 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_alias
pragma . Ö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.h
three.h
arar.
Ayrıca bkz.
Pragma yönergeleri ve __pragma
ve _Pragma
anahtar sözcükleri
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin