2016-03-17 2 views
0

Как правило, нужно определить и инициализировать статические константы в файле заголовка глобальной функции или в его файле cpp (обратите внимание, что у меня есть только одна глобальная функция, определенная для каждого файла).Статические константы в глобальных функциях в C++

+0

Вы говорите о статике, локальной для (глобальной) функции? –

+0

да, я. Они не используются нигде, кроме глобальной функции. – nm17

+1

Если они локальны для функции, они могут быть инициализированы только в определении функции, поэтому ваш вопрос не имеет смысла. Может быть, вы можете показать пример? –

ответ

1

Если значения констант известны во время компиляции, я рекомендую поместить их в файл заголовка и используя:

// No need to use static 
const <type> var = <constant value>; 

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

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

extern <type> getVar(); 
+0

Это статические константы. Я думал, что все статические константы должны быть известны во время компиляции? – nm17

+0

«Нет необходимости использовать статический»: все зависит от видимости, которую вы хотите передать своей переменной (вне единицы компиляции или нет). – Christophe

+0

@Christophe. Обозначенная переменная 'const 'в области пространства имен по умолчанию имеет внутреннюю привязку, поэтому' static' не имеет значения. –

Смежные вопросы