Udostępnij za pośrednictwem


include_alias

Określa, że short_filename ma być używana jako alias dla long_filename.

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

Uwagi

Niektóre systemy plików umożliwiają dłuższe nazwy nagłówka niż limit 8.3 systemu plików FAT.Kompilator nie może obciąć dłuższe nazwy na 8.3, po prostu, ponieważ pierwszych ośmiu znaków dłuższe nazwy nagłówka nie może być unikatowy.Gdy napotka kompilator long_filename ciąg, substytuty short_filenamei wyszukuje plik nagłówkowy short_filename zamiast.Ta dyrektywa pragma musi pojawić się przed odpowiednie #include dyrektyw.Na przykład:

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

Alias wyszukiwaną musi odpowiadać specyfikacji dokładnie, w przypadku, jak również w pisowni i wykorzystanie podwójnego cudzysłowu lub nawiasy.Include_alias pragma wykonuje prosty ciąg dopasowania w nazwach plików; nie inne sprawdzania poprawności nazwy pliku jest wykonywana.Na przykład biorąc pod uwagę następujące dyrektywy,

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

nie Wygładzanie (substytucja) jest wykonywane, ponieważ ciągów w pliku nagłówka nie pasują dokładnie.Ponadto nazwy nagłówka używane jako argumenty do opcji kompilatora /Yu i /Yc lub hdrstop pragma, nie są zastępowane.Na przykład, jeśli plik źródłowy zawiera następujące dyrektywy,

#include <AppleSystemHeaderStop.h>

powinna być odpowiedniej opcji kompilatora

/YcAppleSystemHeaderStop.h

Można użyć include_alias pragma do mapowania nazwy nagłówka pliku do innego.Na przykład:

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

Nie należy mieszać nazw plików, ujęty w znaki cudzysłowu z nazwami plików, ujęte w nawiasy ostre.Na przykład, biorąc pod uwagę powyższe dwie include_alias # pragma dyrektyw, kompilator wykonuje nie podstawiania następującego #include dyrektyw:

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

Ponadto następujące dyrektywy generuje błąd:

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

Należy zauważyć, że nazwa pliku zgłoszone w komunikatach o błędach lub jako wartości wstępnie __FILE__ makro, to nazwa pliku po zastąpieniu została wykonana.Na przykład po następujących dyrektyw,

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

Błąd w VERYLONGFILENAME.H daje następujący komunikat o błędzie:

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

Należy również zauważyć, że przechodniość nie jest obsługiwana.Biorąc pod uwagę następujące dyrektywy,

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

Kompilator wyszukuje plik dwóch.H zamiast trzech.H.

Zobacz też

Informacje

Dyrektywy pragma i __Pragma słowa kluczowego