Eclipse GUID включает охранников - PullRequest
3 голосов
/ 04 января 2012

По умолчанию eclipse создает защитные заголовки include / следующим образом:

Например, для test.h

#ifndef TEST_H_
#define TEST_H_
...

Мне интересно, может ли это соглашение создать конфликты, когда у нас есть файлы с одинаковымиимена в разных папках (пространствах имен) в рамках одного проекта.Если я не пропущу что-то, это будет проблемой, когда у нас такая ситуация.Мне также интересно, как лучше всего называть охранников.Я видел несколько примеров кода, в которых используется именование на основе guid, мне интересно, поддерживает ли eclipse это из коробки, если нет, то может ли кто-нибудь предложить плагин для этого.

Ответы [ 3 ]

0 голосов
/ 04 января 2012

Если вы используете достаточно современный компилятор, вы можете заменить эти охранники более элегантной директивой #pragma один раз.

Посмотрите на такие вещи, как файлы Boost, у них есть некоторые соглашения для защиты заголовков.

0 голосов
/ 04 января 2012

Если имя файла может появиться в нескольких папках или пространствах имен, вы, конечно, можете включить пространство имен также и в охрану включения.

В любом случае комбинация пространства имен и имени класса должна быть достаточно уникальной в вашем проекте.

В MyNamespace / MyClass.h

#if !defined MYNAMESPACE_MYCLASS_H_INCLUDED
#define MYNAMESPACE_MYCLASS_H_INCLUDED
...
#endif
0 голосов
/ 04 января 2012

Имя должно быть уникальным для всех заголовочных файлов. XXXX_H_ является обычным, как и _XXXX_H. GUID используются редко и наименее подвержены коллапсу.

...