#include синтаксис абсолютного пути в c / Stack Overflow

По какой-то причине мне нужно использовать абсолютный путь в #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

Решение

Каждая известная мне реализация, и, конечно же, MSVC 2005 и linux, позволяет вам указывать пути к каталогам, в которых можно найти заголовочные файлы. Вы должны включить D: \ temp \ temp_lib в список путей к каталогам, а затем использовать

#include <temp.h>

Для gcc используйте -I дорожка. Для MSVC см. Где Visual Studio ищет заголовочные файлы C ++?

Причина того, что # 1 не является синтаксической ошибкой, заключается в том, что, хотя она выглядит как строковый литерал, это не так. Спецификация

#include "q-char-sequence"

Где q-char

любой элемент исходного набора символов, кроме символа новой строки
а также «

Особенно, \ не имеет особого значения. Интерпретация q-char-последовательности определяется реализацией.

11

Другие решения

Других решений пока нет …