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.