10

出于某种原因,我需要#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 在编译期间出现错误,但我没有得到任何错误。任何人都知道这是为什么?

4

1 回答 1

14

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

#include <temp.h>

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

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

#include "q-char-sequence"

q-char 在哪里

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

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

于 2012-09-24T10:21:05.027 回答