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.

Siehe auch

Referenz

Pragma-Direktiven und das __Pragma-Schlüsselwort