#include c / c ++中的绝对路径语法

出于某种原因,我需要在#include使用绝对路径作为我的系统。

使用#include "D:\temp\temp_lib\temp.h"可以接受吗?

我尝试了这些不同的用法,这一切似乎都有效。

  1. #include "D:\temp\temp_lib\temp.h"
  2. #include "D:\\temp\\temp_lib\\temp.h"
  3. #include "D:/temp/temp_lib/temp.h"

我只是想知道我应该使用哪一个? 我正在使用MSVC 2005.我想知道这三个是否仍然适用于Linux或其他环境。

我期待#1在编译期间是一个错误,但我没有得到任何错误。 任何人都知道为什么会这样?

我所知道的每个实现,当然还有MSVC 2005和Linux,都允许您指定查找头文件的目录路径。 您应该在目录路径列表中包含D:\ temp \ temp_lib,然后使用

 #include  

对于gcc,请使用-I path 。 对于MSVC,请参阅Visual Studio在哪里查找C ++头文件?

#1不是语法错误的原因是,尽管它看起来像字符串文字,但它不是。 规范是

 #include "q-char-sequence" 

q-char的地方

源字符集的任何成员,除了换行符和“

特别是\没有特别的意义。 q-char序列的解释是实现定义的。