PDA

Просмотр полной версии : [Вопрос] static const, new const, const, define



Found
18.05.2016, 19:27
И снова приветствую пользователей Pro-Pawn и у меня возникли какие-то сомнения на этот счет и правдивость информации, которую я видел ранее.

Перейдем непосредственно к делу. Где-то я прочитал и возможно прочитал неправильно, что использование глобальных массивов static const/new const/const, равнозначно использованию #define и не потребляет какой-либо памяти.

Например:


const MAX_PLAYERS = 100;

Аналогично:


#define MAX_PLAYERS ( 100 )


Можно ли развеять мои сомнения на этот счет?

На базе тех сведений, я использовал много в своё время массивов. (Хранение контента диалога например, дабы каждый раз не дублировать одинаковый текст и изменить его можно было в одном месте.)

VVWVV
18.05.2016, 19:35
Если использовать const без каких-либо операторов, то да, он равносилен define, однако у него есть свои плюсы.
Если же использовать данный оператор с операторами new, stock и static, то данные будут заноситься в память (стек/данные). К тому же, вы не сможете изменять значение данной переменной, т.к. установлен оператор const.

Found
18.05.2016, 19:36
Всё, спасибо.

Тему можно закрывать.

L0ndl3m
18.05.2016, 19:37
Как выше заметил VVWVV, разницы никакой. Оба варианта одинаковые: не будет выделяться в памяти место для переменной, так как в обоих ситуациях создаётся константа.