Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megadja, hogy ha alias_filename található egy #include irányelvben, a fordító helyettesítse a helyén actual_filename.
Szintaxis
#pragma include_alias("alias_filename","actual_filename")
#pragma include_alias(< alias_filename>,<actual_filename>)
Megjegyzések
A include_aliaspragma irányelv lehetővé teszi olyan fájlok helyettesítését, amelyek különböző neveket vagy elérési utakat használnak a forrásfájlok által tartalmazott fájlnevekhez. Egyes fájlrendszerek például a 8,3 FAT fájlrendszerkorlátnál hosszabb fejlécfájlneveket engedélyeznek. A fordító nem tudja egyszerűen 8.3-ra állítani a hosszabb neveket, mert előfordulhat, hogy a hosszabb fejlécfájlnevek első nyolc karaktere nem egyedi. Amikor a fordító egy #include-irányelvben látja a alias_filename sztringet, helyette a actual_filename nevet helyettesíti. Ezután betölti a actual_filename fejlécfájlt. Ennek a pragma a megfelelő #include irányelvek előtt kell megjelennie. Például:
// 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"
A keresendő aliasnak pontosan meg kell egyeznie a specifikációval. A kis- és nagybetűknek, a helyesírásnak és a kettős idézőjelek vagy szögletes zárójelek használatának egyeznie kell. A include_aliaspragma egyszerű karakterlánc-egyeztetést végez a fájlneveken. Nincs más fájlnév-ellenőrzés. Például a következő irányelveket figyelembe véve:
#pragma include_alias("mymath.h", "math.h")
#include "./mymath.h"
#include "sys/mymath.h"
nem történik alias-helyettesítés, mivel a fejlécfájl sztringjei nem egyeznek pontosan. Emellett a /Yu és /Yc fordítóbeállítások argumentumaként használt fejlécfájlnevek, illetve a hdrstoppragmanem helyettesíthetők. Ha például a forrásfájl a következő irányelvet tartalmazza,
#include <AppleSystemHeaderStop.h>
a megfelelő fordítóbeállításnak
/YcAppleSystemHeaderStop.h
A include_aliaspragma bármely fejlécfájlnév egy másikhoz való leképezéséhez használható. Például:
#pragma include_alias( "api.h", "c:\version1.0\api.h" )
#pragma include_alias( <stdio.h>, <newstdio.h> )
#include "api.h"
#include <stdio.h>
Ne keverje a kettős idézőjelek közé zárt fájlneveket szögletes zárójelek közé zárt fájlnevekkel. A fenti két #pragma include_alias direktíva alapján például a fordító nem helyettesíti a következő #include irányelveket:
#include <api.h>
#include "stdio.h"
Ezenkívül a következő irányelv hibát okoz:
#pragma include_alias(<header.h>, "header.h") // Error
A hibaüzenetekben jelentett fájlnév vagy az előre definiált __FILE__ makró értéke a fájl neve a helyettesítés után. Lásd például a kimenetet a következő irányelvek után:
#pragma include_alias( "VERYLONGFILENAME.H", "myfile.h" )
#include "VERYLONGFILENAME.H"
A VERYLONGFILENAME.H hiba a következő hibaüzenetet eredményezi:
myfile.h(15) : error C2059 : syntax error
Azt is vegye figyelembe, hogy az átvittság nem támogatott. Tekintettel a következő irányelvekre,
#pragma include_alias( "one.h", "two.h" )
#pragma include_alias( "two.h", "three.h" )
#include "one.h"
A fordító a three.hhelyett a fájl two.h keres.
Lásd még:
Pragma irányelvei, valamint a __pragma és _Pragma kulcsszavak