include_alias
Especifica que a short_filename deve ser usado como um alias de long_filename.
#pragma include_alias( "long_filename", "short_filename" )
#pragma include_alias( <long_filename>, <short_filename> )
Comentários
Alguns sistemas de arquivos permitem que os nomes de arquivo de cabeçalho mais do que o limite de sistema de arquivos FAT 8.3.O compilador simplesmente não é possível truncar os nomes 8.3, maiores porque os oito primeiros caracteres dos nomes de arquivo de cabeçalho mais não podem ser exclusivos.Sempre que o compilador encontra o long_filename seqüência de caracteres, substitui short_filenamee procurará pelo arquivo de cabeçalho short_filename em vez disso.Esse pragma deve aparecer antes do correspondente #include diretivas.Por exemplo:
// 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"
O alias que está sendo procurado deve coincidir com a especificação exata, no caso, bem como em ortografia e no uso de aspas duplas ou de colchetes angulares.O include_alias pragma realiza a cadeia de caracteres simple fazer a correspondência de nomes de arquivo; nenhuma outra validação de nome de arquivo é executada.Por exemplo, considerando as seguintes diretivas,
#pragma include_alias("mymath.h", "math.h")
#include "./mymath.h"
#include "sys/mymath.h"
Nenhum alias (substituição) é executada, desde que as seqüências de caracteres do arquivo de cabeçalho não coincidem exatamente.Além disso, os nomes de cabeçalho usados como argumentos para as opções de compilador /Yu e /Yc, ou o hdrstop pragma, não sejam substituídas.Por exemplo, se o seu arquivo de origem contém a diretiva a seguir,
#include <AppleSystemHeaderStop.h>
a opção de compilador correspondente deve ser.
/YcAppleSystemHeaderStop.h
Você pode usar o include_alias pragma para mapear qualquer nome de arquivo de cabeçalho para outro.Por exemplo:
#pragma include_alias( "api.h", "c:\version1.0\api.h" )
#pragma include_alias( <stdio.h>, <newstdio.h> )
#include "api.h"
#include <stdio.h>
Não misture os nomes de arquivo entre aspas duplas com nomes de arquivos entre colchetes angulares.Por exemplo, considerando os dois acima # pragma include_alias diretivas, o compilador não executa nenhuma substituição no seguinte #include diretivas:
#include <api.h>
#include "stdio.h"
Além disso, a diretiva a seguir gera um erro:
#pragma include_alias(<header.h>, "header.h") // Error
Observe que o nome do arquivo relatado em mensagens de erro ou como o valor do predefinido __FILE__ macro, é o nome do arquivo, após a substituição foi realizada.Por exemplo, após as seguintes diretivas,
#pragma include_alias( "VeryLongFileName.H", "myfile.h" )
#include "VeryLongFileName.H"
um erro no VERYLONGFILENAME.H produz a seguinte mensagem de erro:
myfile.h(15) : error C2059 : syntax error
Observe também que a transitividade não é suportada.Dadas as seguintes diretivas,
#pragma include_alias( "one.h", "two.h" )
#pragma include_alias( "two.h", "three.h" )
#include "one.h"
o compilador pesquisa o arquivo dois.H em vez de três.H.