Составители:
Рубрика:
Перечислимые константы. При написании программ часто возникает потреб-
ность определить несколько именованных констант, для которых требуется, чтобы все
они имели различные значения (при этом конкретные значения могут быть не важны).
Для этого удобно воспользоваться перечисляемым типом данных, все возможные значе-
ния которого задаются списком целочисленных констант. Формат:
enum [ имя_типа ] { список_констант };
Имя типа задается в том случае, если в программе требуется определять перемен-
ные этого типа. Компилятор обеспечивает, чтобы эти переменные принимали значения
только из списка констант. Константы должны быть целочисленными и могут инициа-
лизироваться обычным образом. При отсутствии инициализатора первая константа об-
нуляется, а каждой следующей присваивается на единицу большее значение, чем преды-
дущей:
enum Err {ERR_READ, ERR_WRITE, ERR_CONVERT};
Err error;
...
switch (error){
case ERR_READ: /* операторы */break;
case ERR_WRITE: /* операторы */break;
case ERR_CONVERT: /*операторы */ break;
}
Константам ERR_READ, ERR_WRITE, ERR_CONVERT присваиваются значения
0, 1 и 2 соответственно. Другой пример:
enum {two = 2, three, four, ten = 10, eleven, fifty = ten + 40};
Константам three и four присваиваются значения 3 и 4; константе eleven - 11.
Имена перечисляемых констант должны быть уникальными, а значений могут сов-
падать. Преимущество применения перечисления перед описанием именованных кон-
стант и директивой #define состоит в том, что связанные константы
нагляднее; кроме
того, компилятор при инициализации констант может выполнять проверку типов.
При выполнении арифметических операций перечисления преобразуются в целые.
Поскольку перечисления являются типами, определяемыми пользователем, для них
можно вводить собственные операции.
Переименование типов. Для того чтобы сделать программу более ясной, можно
задать типу новое имя с помощью ключевого слова typedef:
typedef тип новое_имя [ размерность ];
В данном случае квадратные скобки являются элементом синтаксиса. Размерность
может отсутствовать. Примеры:
typedef long int GY;
typedef unsigned int UINT;
typedef char Msg[100];
Введенное таким образом имя можно использовать таким же образом, как и имена
стандартных типов:
24
Перечислимые константы. При написании программ часто возникает потреб-
ность определить несколько именованных констант, для которых требуется, чтобы все
они имели различные значения (при этом конкретные значения могут быть не важны).
Для этого удобно воспользоваться перечисляемым типом данных, все возможные значе-
ния которого задаются списком целочисленных констант. Формат:
enum [ имя_типа ] { список_констант };
Имя типа задается в том случае, если в программе требуется определять перемен-
ные этого типа. Компилятор обеспечивает, чтобы эти переменные принимали значения
только из списка констант. Константы должны быть целочисленными и могут инициа-
лизироваться обычным образом. При отсутствии инициализатора первая константа об-
нуляется, а каждой следующей присваивается на единицу большее значение, чем преды-
дущей:
enum Err {ERR_READ, ERR_WRITE, ERR_CONVERT};
Err error;
...
switch (error){
case ERR_READ: /* операторы */break;
case ERR_WRITE: /* операторы */break;
case ERR_CONVERT: /*операторы */ break;
}
Константам ERR_READ, ERR_WRITE, ERR_CONVERT присваиваются значения
0, 1 и 2 соответственно. Другой пример:
enum {two = 2, three, four, ten = 10, eleven, fifty = ten + 40};
Константам three и four присваиваются значения 3 и 4; константе eleven - 11.
Имена перечисляемых констант должны быть уникальными, а значений могут сов-
падать. Преимущество применения перечисления перед описанием именованных кон-
стант и директивой #define состоит в том, что связанные константы нагляднее; кроме
того, компилятор при инициализации констант может выполнять проверку типов.
При выполнении арифметических операций перечисления преобразуются в целые.
Поскольку перечисления являются типами, определяемыми пользователем, для них
можно вводить собственные операции.
Переименование типов. Для того чтобы сделать программу более ясной, можно
задать типу новое имя с помощью ключевого слова typedef:
typedef тип новое_имя [ размерность ];
В данном случае квадратные скобки являются элементом синтаксиса. Размерность
может отсутствовать. Примеры:
typedef long int GY;
typedef unsigned int UINT;
typedef char Msg[100];
Введенное таким образом имя можно использовать таким же образом, как и имена
стандартных типов:
24
Страницы
- « первая
- ‹ предыдущая
- …
- 22
- 23
- 24
- 25
- 26
- …
- следующая ›
- последняя »
