假设我有一个名为a"b.h
或a>b.h
的头文件,如何转义INCLUDE指令中的"
或>
字符?
// this does not work
#include "a\"b.h"
假设我有一个名为a"b.h
或a>b.h
的头文件,如何转义INCLUDE指令中的"
或>
字符?
// this does not work
#include "a\"b.h"
在使用#include <filename>
指令时,不允许将>
字符作为文件名的一部分(在#include "filename"
中,不允许将"
作为文件名的一部分).没有标准的方法来转义序列中的任何字符,任何这样的功能都将是编译器的扩展.cppreference link.
对于文件名a>b.h
的特定情况,您可以将其更改为#include "a>b.h"
,它应该可以工作.
文件名a"b.h
不太走运--即使在#include <a"b.h>
中,它的实现也定义了如何对待"
个字符(或者如果完全支持的话).
除"
之外,还在#include
指令的文件名部分使用字符'
、\
、//
或/*
是实现定义的,可能不受支持.