include_alias

Specifica che short_filename è possibile utilizzare come alias per long_filename.

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

Note

Alcuni file system dei nomi file più lunghi di intestazione che il limite di file system FAT di 8,3.Il compilatore non è possibile troncare semplicemente i nomi più lunghi a 8,3, perché i primi otto caratteri dei nomi file più lunghi di intestazione non possono essere univoci.Ogni volta che il compilatore rileva long_filename stringa, sostituisce short_filenamee individuare il file di intestazione short_filename anziché.Questo pragma deve essere inserito prima della corrispondenza #include direttive.Di seguito è riportato un esempio:

// 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 che viene trovato deve corrispondere alla specifica esattamente, nel caso nonché ortografici e utilizzare le virgolette doppie o parentesi angolari.include_alias il pragma esegue la corrispondenza semplici stringhe nei nomi file; nessun'altra convalida del nome file viene eseguita.Ad esempio, data le seguenti direttive,

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

nessun aliasing (sostituzione) viene eseguito, poiché le stringhe del file di intestazione non corrispondono esattamente.Inoltre, i file di intestazione utilizzati come argomenti alle opzioni del compilatore /Yc e /Yu, o hdrstop il pragma, non verrà sostituito.Ad esempio, se il file di origine contiene la direttiva riportata di seguito,

#include <AppleSystemHeaderStop.h>

l'opzione del compilatore corrispondente deve essere

/YcAppleSystemHeaderStop.h

È possibile utilizzare include_alias pragma per eseguire il mapping qualsiasi nome del file di intestazione a un altro.Di seguito è riportato un esempio:

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

Non combinare i nomi file racchiusi tra virgolette doppie ai nomi file racchiusi tra parentesi angolari.Ad esempio, in base al due principali include_alias #pragma le direttive, il compilatore non esegue la sostituzione in quanto segue #include direttive:

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

Inoltre, la direttiva seguente genera un errore:

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

Si noti che il nome file è stato rilevato nei messaggi di errore, o come valore del predefinito __FILE la macro, è il nome del file dopo che la sostituzione è stata eseguita.Ad esempio, dopo le seguenti direttive,

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

un errore in VERYLONGFILENAME.H genera il seguente messaggio di errore:

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

Si noti inoltre che la transitività non è supportata.Date le seguenti direttive,

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

il compilatore trova il file TWO.H anziché THREE.H.

Vedere anche

Riferimenti

Direttive pragma e la parola chiave di __Pragma