include_alias
Gibt an, dass short_filename als Alias für long_filenameverwendet werden soll.
#pragma include_alias( "long_filename", "short_filename" )
#pragma include_alias( <long_filename>, <short_filename> )
Hinweise
Einige Dateisysteme können längere Headerdatei als Dateisystem FAT-8.3 beschränkt.Der Compiler kann die längeren Namen nicht einfach bis 8.3 abschneiden, da die ersten acht Zeichen der längeren Headerdatei möglicherweise nicht eindeutig sind.Wenn der Compiler die long_filename Zeichenfolge auftritt, ersetzt er short_filenameund sucht nach dem Headerdatei short_filename .Dieses Pragma muss vor den entsprechenden #include-Direktive angezeigt werden.Beispiele:
// 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"
Der Alias, der gefunden wird, muss die Spezifikation für den fall, dass genau übereinstimmen, sowie in der Schreibweise und in Gebrauch von doppelten Anführungszeichen oder spitzen Klammern.Das include_alias Pragma listet die einfache Zeichenfolge aus, die auf den Dateinamen übereinstimmt. Dateinamen keine andere Validierung wird ausgeführt.Beispielsweise die folgenden Direktiven.
#pragma include_alias("mymath.h", "math.h")
#include "./mymath.h"
#include "sys/mymath.h"
(kein Aliasing Ersetzung) wird ausgeführt, da die Headerdatei Zeichenfolgen nicht übereinstimmen.Die Headerdatei, die als Argumente an /Yu- und /Yc- Compileroptionen verwendet werden, oder das hdrstop Pragma, werden nicht ersetzt.Wenn z. B. die Quelldatei enthält die folgenden Direktiven
#include <AppleSystemHeaderStop.h>
Compileroption sollte die entsprechende
/YcAppleSystemHeaderStop.h
Sie können das include_alias Pragma verwenden, um einen beliebigen Headerdatei zu anderen zuzuordnen.Beispiele:
#pragma include_alias( "api.h", "c:\version1.0\api.h" )
#pragma include_alias( <stdio.h>, <newstdio.h> )
#include "api.h"
#include <stdio.h>
Kombinieren Sie nicht die Dateinamen, die in Anführungszeichen eingeschlossen sind, mit den Dateinamen in spitzen Klammern eingeschlossen werden.Beispielsweise werden die beiden oben erwähnten Direktive #pragma include_alias der Compiler keinen Ersatz für den nächsten #include-Direktive aus:
#include <api.h>
#include "stdio.h"
Außerdem generieren die folgende Direktive einen Fehler:
#pragma include_alias(<header.h>, "header.h") // Error
Beachten Sie, dass der Dateiname in Fehlermeldungen gemeldet oder als der Wert des vordefinierten __FILE Makros und der Name der Datei lautet, nachdem die Ersetzung ausgeführt wurde.Zum Beispiel nach den folgenden Direktiven.
#pragma include_alias( "VeryLongFileName.H", "myfile.h" )
#include "VeryLongFileName.H"
ein Fehler in VERYLONGFILENAME.H wird die folgende Fehlermeldung angezeigt:
myfile.h(15) : error C2059 : syntax error
Beachten Sie außerdem, dass Transitivität nicht unterstützt wird.Wenn die folgende Direktive.
#pragma include_alias( "one.h", "two.h" )
#pragma include_alias( "two.h", "three.h" )
#include "one.h"
Compiler sucht die Datei statt TWO.H. THREE.H.