Udostępnij za pośrednictwem


include_alias

Określa, że short_filename ma być używany 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 plików nagłówków niż limit 8.3 systemu plików FAT.Kompilator nie może po prostu obciąć dłuższej nazwy do 8.3, ponieważ pierwsze osiem znaków dłuższej nazwy plików nagłówka nie musi być unikatowa.Gdy kompilator napotka ciąg long_filename zastępuje go short_filename i szuka w zamian pliku nagłówka short_filename.Ta dyrektywa musi się pojawić przed odpowiadającymi dyrektywami #include.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"

Poszukiwany alias musi dokładnie odpowiadać specyfikacji, zarówno w wielkości liter jak i w pisowni i użyciu znaków podwójnego cudzysłowu lub nawiasów ostrokątnych.Dyrektywa include_alias wykonuje na nazwach plików proste dopasowanie ciągów; nie wykonuje innych testów poprawności nazw plików.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"

alias (podstawienie) nie jest wykonywane, ponieważ ciągi pliku nagłówka nie są dokładnie zgodne.Ponadto nazwy plików nagłówka używane jako argumenty w opcjach kompilatora /Yu i /Yc lub w dyrektywie hdrstop, nie zostały zastąpione.Na przykład, jeśli plik z kodem źródłowym zawiera następujące dyrektywy,

#include <AppleSystemHeaderStop.h>

odpowiadające opcje kompilatora to

/YcAppleSystemHeaderStop.h

Można użyć dyrektywy include_alias do mapowania dowolnej nazwy pliku nagłówka na inną.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ętych w znaki cudzysłowu z nazwami plików ujętymi w nawiasy ostre.Na przykład, dla dwóch podanych wyżej dyrektyw #pragma include_alias, kompilator nie wykona podstawienia dla poniższych dyrektyw #include:

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

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

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

Należy zauważyć, że nazwa pliku zgłaszana w komunikatach o błędach lub jako wartość wstępnie zdefiniowanego makra __FILE__, jest nazwą pliku po wykonaniu podstawienia.Na przykład po następujących dyrektywach,

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

błąd w VERYLONGFILENAME.H wygeneruje 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 wyszuka plik TWO.H zamiast THREE.H.

Zobacz też

Informacje

Dyrektywy pragma i słowo kluczowe __Pragma