Ключевые слова, недопустимые для использования в качестве имен переменных и констант
Некоторые слова зарезервированы языком C++, и их нельзя использовать в качестве имен переменных. У этих ключевых слов есть специальное значение для компилятора C++. К ключевым относятся такие слова, как i f , w h ile , f o r и m a in . Список ключевых слов языка C++ приведен в табл. 3.2, а также в приложении Б, “Ключевые слова язы ка C++”. У вашего компилятора могут быть дополнительные зарезервированные слова, поэтому для полноты списка проверьте его документацию.
ТАБЛИЦА 3.2. Ключевые слова языка C++
|
|
|
asm
|
else
|
New
|
this
|
auto
|
enum
|
Operator
|
throw
|
bool
|
explicit
|
Private
|
true
|
break
|
export
|
Protected
|
try
|
case
|
extern
|
Public
|
typedef
|
catch
|
false
|
Register
|
typeid
|
char
|
float
|
reinterpret_cast
|
typename
|
class
|
for
|
Return
|
union
|
const
|
friend
|
Short
|
unsigned
|
const cast
|
goto
|
Signed
|
using
|
continue
|
if
|
Sizeof
|
virtual
|
68 ЗАНЯТИЕ 3. Использование переменных, объявление констант
|
|
|
Окончание табл. 3.2
|
default
|
inline
|
Static
|
void
|
delete
|
int
|
static cast
|
volatile
|
do
|
long
|
Struct
|
wchar_t
|
double
|
mutable
|
Switch
|
while
|
dynamic_cast
|
namespace
|
Template
|
|
Кроме того, зарезервированы следующие слова:
|
|
and
|
bitor
|
not_eq
|
xor
|
and_eq
|
compl
|
Or
|
xor_eq
|
bitand
|
not
|
or_eq
|
|
Резюме
На этом занятии речь шла об использовании памяти для временного хранения значений
в переменных и константах. Вы узнали, что размер переменных определяет их тип и что оператор s iz e o f позволяет выяснить его. Вы узнали о существовании различных типов переменных, таких как b ool, in t и т.д., а также о том, что они должны использоваться для содержания данных различных типов. Правильный выбор типа переменной важен для эффективности программы; если для переменной выбран слишком маленький тип, это может закончиться ошибкой оболочки или переполнением регистров. Вы познакомились
новым ключевым словом C++11 auto, который позволяет компилятору самостоятельно вывести тип данных на основе инициализирующего значения переменной.
Кроме того, мы рассмотрели различные типы констант и применение самых важных из них (использующих ключевые слова co n st и enum).
Вопросы и ответы
Зачем вообще определять константы, если вместо них можно использовать обыч ные переменные?
Константы, особенно те, в объявлении которых используется ключевое слово co n st, являются средством указать компилятору, что значение определенной переменной должно быть постоянным и не должно изменяться. Следовательно, компилятор гаран тирует, что переменной, объявленной постоянной, никогда не будет присвоено другое значение, даже если другой программист, поправляя вашу работу, по неосторожности попытается перезаписывать значение. Так, если вы знаете, что значение переменной не должно изменяться, хорошая практика программирования подразумевает объявление ее как константы, что увеличивает качество приложения.
Зачем инициализировать значение переменной?
Если вы не инициализируете переменную, то не знаете, какое значение она содержит первоначально. Начальное значение — это только содержимое области памяти, заре зервированной для переменной. Инициализация переменной, такая как
int MyFavoriteNumber = 0;,
записывает в область памяти, зарезервированной для переменной M yF avoriteN um ber, исходное значение по вашему выбору, в данном случае 0. Нередки ситуации, когда осу ществляется обработка условного выражения в зависимости от значения переменной (как правило, проверка на отличие от нуля). Без инициализации такая логика работает ненадежно, поскольку вновь зарезервированная область памяти содержит то, что в ней было раньше, т.е. случайное значение, которое зачастую отличается от нуля.
Почему язык C++ позволяет использовать для целых чисел разные типы: sh ort in t, in t и long in t? Почему бы не использовать всегда только тот тип, который позволяет хранить наибольшие значения?
Язык программирования C++ используется для разработки множества приложений, некоторые из которых выполняются на устройствах с небольшими вычислительны ми возможностями и ресурсами памяти. Простой старый сотовый телефон — один из примеров, где вычислительные возможности и доступная память весьма ограничены. В данном случае программист может сэкономить память и ускорить выполнение, вы брав правильный тип переменной, если он не нуждается в больших значениях. Если программа предназначена для рабочего стола или высокопроизводительного смартфо на, экономия памяти и увеличение производительности за счет выбора типа одного целого числа будет незначительной, а в некоторых случаях — даже отсутствовать.
Почему не следует широко использовать глобальные переменные? Разве не прав да, что они пригодны для использования повсюду в приложении, и я могу сэконо мить время на передаче значений в функции и из них?
Значения глобальных переменных можно читать и присваивать глобально. Последнее и является проблемой, поскольку они могут быть изменены глобально. Предположим, вы работаете над проектом вместе с несколькими программистами. Вы объявили свои целочисленные и другие переменные глобальными. Если программист вашей группы изменяет значение целого числа в своем коде, который может даже находиться не в том файле . дрр, который используете вы, на ваш код это тоже повлияет. Поэтому экономия нескольких секунд или минут не должна быть критерием, и вы не должны использовать глобальные переменные без разбора, чтобы гарантировать стабильность своего кода.
Язык C++ позволяет объявлять беззнаковые целочисленные переменные, кото рые, как предполагается, способны содержать только положительные целочис ленные значения и нуль. Что случится при декременте нулевого значения пере менной типа unsigned int?
Do'stlaringiz bilan baham: |