假设我有一个名为
a>b.h
或 a"b.h
的头文件,如何转义包含指令中的 >
或 "
字符?
// this does not work
#include <a\>b.h>
>
指令时,不允许使用
#include <filename>
字符作为文件名的一部分(分别地,"
不允许作为 #include "filename"
中文件名的一部分)。 cpp参考链接
对于这种情况,您可以将其更改为
#include "a>b.h"
,它应该可以工作。
请注意,在
'
指令的文件名部分中使用字符 "
、\
、//
/*
或 #include
是实现定义的,可能不受支持。
允许的字符在 lex.charset 中定义。您可以使用任何这些字符,只要它们不破坏解析:lex.header.
在您的情况下,您可能需要添加包含路径并尝试以下操作:
#include "a>b.h"