Запитання з тегом «constants»

Константи програмування - це визначення, значення яких фіксується впродовж виконання програми. Літерали на більшості мов, наприклад, константи. У референційно прозорих стилях програмування всі визначення є постійними. Область зберігання даних (об'єкт, поле, змінна, параметр), яка відповідає стандартам, - це та, яка "ніколи не змінюється", що дозволяє додатково оптимізувати генератор коду та додаткову статичну перевірку правильності програми.

3
Ім'я динамічної константи в PHP
Я намагаюся динамічно створити ім'я константи, а потім отримати значення. define( CONSTANT_1 , "Some value" ) ; // try to use it dynamically ... $constant_number = 1 ; $constant_name = ("CONSTANT_" . $constant_number) ; // try to assign the constant value to a variable... $constant_value = $constant_name; Але я виявляю, …


5
Швидкі константи: Struct або Enum
Я не впевнений, які з обох краще визначити константами. Структура або перелік. Структура буде скопійована кожного разу, коли я її використовую чи ні? На static letмою думку, коли я думаю про структуру з константами, немає сенсу, що вона буде постійно копіюватися. Але якщо це не буде скопійовано, то це не …

7
Чи правильність const надає компілятору більше простору для оптимізації?
Я знаю, що це покращує читабельність і робить програму менш схильною до помилок, але наскільки це покращує продуктивність? І на додаток, яка основна різниця між посиланням та constпокажчиком? Я б припустив, що вони зберігаються в пам'яті по-різному, але як так?

8
Переваги використання const замість змінних усередині методів
Щоразу, коли в методі є локальні змінні, ReSharper пропонує перетворити їх у константи: // instead of this: var s = "some string"; var flags = BindingFlags.Public | BindingFlags.Instance; // ReSharper suggest to use this: const string s = "some string"; const BindingFlags flags = BindingFlags.Public | BindingFlags.Instance; Враховуючи, що це …


3
Чому змінну const іноді не потрібно фіксувати в лямбда-звуці?
Розглянемо наступний приклад: #include <cstdlib> int main() { const int m = 42; [] { m; }(); // OK const int n = std::rand(); [] { n; }(); // error: 'n' is not captured } Чому мені потрібно захоплювати nв другій лямбді, а не mв першій лямбді? Я перевірив розділ …

8
Попередження про педантичне gcc: кваліфікатори типу для типу повернення функції
Коли я вперше скомпілював свій код C ++ із GCC 4.3 (після успішного його складання без попереджень 4.1, 4.0, 3.4 з -Wall -Wextraопціями), я раптом отримав купу помилок форми warning: type qualifiers ignored on function return type. Розглянемо temp.cpp: class Something { public: const int getConstThing() const { return _cMyInt; …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.