Sdílet prostřednictvím


include_alias

Určuje, že název short_filename má být použit jako alias názvu long_filename.

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

Poznámky

Některé systémy souborů povolují delší názvy souborů hlaviček než omezení 8.3 systému souborů FAT.Kompilátor nemůže jednoduše zkrátit delší názvy na formát 8.3, protože prvních 8 znaků delšího názvu souboru hlaviček nemusí být jedinečných.Vždy, kdy kompilátor nalezne řetězec long_filename, nahradí jej řetězcem short_filename a hledá soubor hlaviček short_filename.Tato direktiva pragma se musí vyskytovat před odpovídajícími direktivami #include.Příklad:

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

Hledaný alias se musí se specifikací přesně shodovat ve velikosti písmen, jejich pořadí i použití dvojitých uvozovek či ostrých závorek.Direktiva pragma include_alias provede jednoduchou kontrolu shody řetězců názvů souborů. Žádné další ověření názvu souboru se neprovádí.Jsou-li například dány následující direktivy,

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

není zavedení aliasů (nahrazení) provedeno, protože řetězce souborů hlaviček nejsou přesně shodné.Názvy souborů hlaviček použité jako argumenty možností kompilátoru /Yu a /Yc nebo direktivy pragma hdrstop také nejsou nahrazeny.Obsahuje-li zdrojový kód například následující direktivu,

#include <AppleSystemHeaderStop.h>

měla by odpovídající možnost kompilátoru být

/YcAppleSystemHeaderStop.h

Pomocí direktivy pragma include_alias lze mapovat libovolný název souboru hlaviček na jiný.Příklad:

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

Nezaměňujte názvy souborů uzavřené v uvozovkách s názvy souborů uzavřených v ostrých závorkách.Jsou-li například dány předchozí dvě direktivy #pragma include_alias, kompilátor neprovede žádné nahrazení v následujících direktivách #include:

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

Dále, následující direktiva způsobí chybu:

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

Povšimněte si, že název souboru uvedený v chybových zprávách nebo v hodnotě předdefinovaného makra __FILE__ je název souboru po jeho nahrazení.Například po následujících direktivách,

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

vygeneruje chyba v souboru VERYLONGFILENAME.H následující chybovou zprávu:

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

Povšimněte si také, že není podporována přenositelnost.Jsou-li dány následující direktivy,

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

kompilátor hledá namísto souboru THREE.H soubor TWO.H.

Viz také

Referenční dokumentace

Direktivy Pragma a klíčové slovo __Pragma