LINUX.ORG.RU

[C++] Header-файл с define'ами

 


0

1

Извиняюсь за глупый вопрос... Если я использую один .h файл для описания констант, мне нужно делать защиту от повторного включения?

#define MARKER_RADIUS_SIZE 4
#define MIN_RECTANGLE_SIZE 8

или

#ifndef __GRAPHICSETTINGS_H__
#define __GRAPHICSETTINGS_H__

#define MARKER_RADIUS_SIZE 4
#define MIN_RECTANGLE_SIZE 8

#endif __GRAPHICSETTINGS_H__

при компиляции последнего, выдаётся warning

GraphicSettings.h:7:8: warning: extra tokens at end of #endif directive


#endif /* __GRAPHICSETTINGS_H__ */
AptGet ★★★
()

> Если я использую один .h файл для описания констант, мне нужно делать защиту от повторного включения?

Защиту нужно делать всегда в независимости от назначения заголовочного файла.

anonymous
()
Ответ на: комментарий от g-71

отвечу цитатой

One reason is that you will typically get more meaningful diagnostics if you misuse the symbol.

But a more important reason is that, unlike #define, a const symbol obeys scoping rules, so it won't have the potential for nasty side-effects, substituting itself where it doesn't belong.

shty ★★★★★
()
Ответ на: комментарий от shty

Кстати, для числовых констант ещё удобно использовать enum.

enum
{
MARKER_RADIUS_SIZE = 4,
MIN_RECTANGLE_SIZE = 8
};

ssvda
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.