Partager via


include_alias

spécifie que le short_filename doit être utilisé comme alias pour le long_filename.

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

Notes

Certains systèmes de fichiers permettent de plus longs noms de fichiers d'en-tête que la limite système de fichiers FAT 8,3.Le compilateur ne peut pas simplement tronquer les noms longs à 8,3, car les huit premiers caractères des noms de fichiers longs d'en-tête peuvent ne pas être uniques.Lorsque le compilateur rencontre la chaîne de long_filename , elle remplace le short_filename, et recherche le short_filename de fichier d'en-tête à la place.Ce pragma doit apparaître avant les directives de correspondance d' #include .Par exemple :

// 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"

L'alias recherché doit répondre à la spécification exactement, si ainsi que d'orthographe et en cours de utilisation des guillemets doubles ou de crochets.Le pragma d' include_alias exécute la correspondance de chaîne simple sur les noms de fichiers ; aucune autre validation de nom de fichier n'est effectuée.Par exemple, dans les directives suivantes,

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

aucun alias (substitution) n'est exécuté, comme les chaînes de fichier d'en-tête ne correspondent pas exactement.En outre, les noms de fichiers d'en-tête utilisés comme arguments aux options du compilateur /Yu et /Yc, ou le pragma de hdrstop , ne sont pas substituées.par exemple, si votre fichier source contient la directive suivante,

#include <AppleSystemHeaderStop.h>

l'option du compilateur correspondante doit être

/YcAppleSystemHeaderStop.h

Vous pouvez utiliser le pragma d' include_alias pour mapper d'un nom de fichier d'en-tête à un autre.Par exemple :

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

Ne combinez pas les noms de fichiers placés entre guillemets contenant des noms de fichiers en les plaçant entre crochets pointus.Par exemple, dans les deux directives ci-dessus d' include_alias #pragma , le compilateur n'exécute aucune substitution sur les directives suivantes d' #include :

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

en outre, la directive suivante génère une erreur :

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

Notez que le nom de fichier stocké dans les messages d'erreur, ou comme valeur de la macro prédéfinie de __FILE , est le nom du fichier après la substitution a été effectuée.par exemple, après les directives suivantes,

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

une erreur dans VERYLONGFILENAME.H produit le message d'erreur suivant :

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

notez également que la transitivité n'est pas prise en charge.En supposant les directives suivantes,

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

les recherches de compilateur pour le fichier TWO.H plutôt que THREE.H.

Voir aussi

Référence

Directives pragma et le mot clé de __Pragma