include_alias
指定 short_filename 将用作别名 long_filename。
#pragma include_alias( "long_filename", "short_filename" )
#pragma include_alias( <long_filename>, <short_filename> )
备注
某些文件系统大于 8.3 FAT 文件系统限制允许更长的头文件。 ,因为较长的头文件的前八个字符可能不是唯一的,编译器无法截断更长名称为 8.3。 只要编译器遇到 long_filename 字符串,它替换 short_filename,并查找头文件 short_filename 。 此说明必须在相应的 #include 指令前面。 例如:
// 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"
在拼写必须要搜索的别名完全匹配规范,但是,如果以及和正在使用双引号或尖括号。 include_alias 说明执行匹配文件名中的简单字符串;其他文件名不执行验证。 例如将下面的指令,
#pragma include_alias("mymath.h", "math.h")
#include "./mymath.h"
#include "sys/mymath.h"
失真 () 替换未实现,,因为头文件字符串不完全匹配。 此外,作为参数使用的头文件名 /Yu 和 /Yc 编译器选项或 hdrstop 请注意,不进行替换。 例如,因此,如果源文件包含以下指令,
#include <AppleSystemHeaderStop.h>
相应的编译器选项应为
/YcAppleSystemHeaderStop.h
可以使用 include_alias 说明映射所有标头文件名到另一个。 例如:
#pragma include_alias( "api.h", "c:\version1.0\api.h" )
#pragma include_alias( <stdio.h>, <newstdio.h> )
#include "api.h"
#include <stdio.h>
与尖括号括起的文件名不要组合用双引号括起来的文件名。 例如命名上述两个 #pragma include_alias 指令,编译器不执行以下 #include 指令的替换:
#include <api.h>
#include "stdio.h"
此外,下面的指令生成错误:
#pragma include_alias(<header.h>, "header.h") // Error
请注意为预定义的 __FILE 宏的值在报告的错误消息,或文件名,是文件的名称,将替换执行后。 例如,下面的指令之后,
#pragma include_alias( "VeryLongFileName.H", "myfile.h" )
#include "VeryLongFileName.H"
在 VERYLONGFILENAME.H 的错误会产生以下错误消息:
myfile.h(15) : error C2059 : syntax error
另外请注意及物性不受支持。 给定以下指令,
#pragma include_alias( "one.h", "two.h" )
#pragma include_alias( "two.h", "three.h" )
#include "one.h"
编译器搜索文件 TWO.H 而不是 THREE.H。