Форум программистов, компьютерный форум CyberForum.ru

Дайте характеристику применения ключевого слова enum - C++

Восстановить пароль Регистрация
Другие темы раздела
C (СИ) Удаление максимальных элементов строк матрицы http://www.cyberforum.ru/cpp-beginners/thread225560.html
Собственно споткнулся на участке, где надо удалить максимальные элементы строк матрицы, а последнему элементу строки присвоить 0. Вот что у меня сечас: #include <stdio.h> #include <stdlib.h> #include <conio.h> void printmatr(float *X,int n,int m) { int i,j; for(i=0;i<n;i++)
C (СИ) Как правильно объявить две структуры с указателями друг на друга В одном файле определены две структуры. typedef struct Tdata1 { int a; data2 *d; } data1; typedef struct Tdata2 { int a; data1 *d; http://www.cyberforum.ru/cpp-beginners/thread225517.html
C (СИ) Динамически добавить элементы в структуру
написал основу, никак не получается реализовать добавление данных динамически, подскажите пожалуйста путь загвоздка в том, что нельзя пользоваться функцией realloc() и как при этом заново вызывая функцию add_members( которая должна получать указатель на массив структур и указатель на размер массива) сохранить уже записанные данныеб выделить больше памяти, добавить новые данные, и вернуть...
C (СИ) Создание двумерного массива в программе
:cry:Рабочие изготавливают различные изделия. Рассчитать зарплату для каждого рабочего, учитывая, что стоимость изделия, зависит от его кода. Кроме того, рабочие получают надбавку за качество работы: за качество с кодом 001 устанавливается надбавка в 50%, Исходные данные: Табель учетаработ Табельный номер(777 и 101) Код изделий(001 и 005) Количество(10 и 5) Код качества(001 и 003) Табель...
C (СИ) Передача структуры в функцию http://www.cyberforum.ru/cpp-beginners/thread225396.html
Здравствуйте! Я первый день изучаю си , до этого паскаль, не судите строго ) Задача : Составить программу из 3 файлов в 1 функции, второй это заголовок и третий главная форма. Помогите исправить ошибки! funkcii.c #include <stdio.h> #include <string.h> #include "File1.h" void zapolnenie(int RAZ,struct *EGO,struct *vrem) { int i,j;
C (СИ) как составить программу в СИ Рабочие изготавливают различные изделия. Рассчитать зарплату для каждого рабочего, учитывая, что стоимость изделия, зависит от его кода. Кроме того, рабочие получают надбавку за качество работы: за качество с кодом 001 устанавливается надбавка в 50%, с кодом 002 - 25%. ... подробнее

Показать сообщение отдельно
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
08.01.2011, 14:34     Дайте характеристику применения ключевого слова enum
Введение в перечисления

Как известно, перечисления - это тип который может содержать значения указанные программистом. Целочисленные именованные константы могут быть определены как члены перечисления. Например:
enum { RED, GREEN, BLUE };
определяет три целочисленные константы и присваивает им значения. По умолчанию, значения присваиваются по порядку начиная с нуля, т.е. RED == 0, GREEN == 1 и BLUE == 2. Перечисление также может быть именованным:
enum color { RED, GREEN, BLUE };
Каждое перечисление - это отдельный тип, и тип каждого члена перечисления - это само перечисление. Например RED имеет тип color. Объявление типа переменной как color, вместо обычного unsigned, может подсказать и программисту и компилятору о том как эта переменная должна быть использована. Например:
C++
1
2
3
4
5
6
7
8
9
10
11
void f(color c)
{
    switch(c){
        case RED:
            // do something
            break;
        case BLUE:
            // do something
            break;
    }
}
В этом случае компилятор может выдать предупреждение о том, что обрабатываются только два значения color из трёх возможных.

Таким образом перечисления это:

- Создание именованных констант с автоматическим увеличением значения константы
- Предупреждения о возможных ошибках со стороны компилятора

Основные проблемы при использовании enum

На самом деле всё что выше - общие слова, которые нужны только для того чтобы те кто забрёл сюда по ошибке, хотя бы что-то из этой статьи вынесли. А мы сейчас поговорим о сложностях и хитростях с которыми приходится сталкиваться каждому кто более-менее юзает перечисления в нормальном девелопменте. Итак, с чем приходится сталкиваться:

1. Отображение значения перечисления в строку которая совпадает с именем члена перечисления, т.е. что-либо что для enum_map[RED] вернёт "RED".

2. Итерация по членам перечисления и контроль выхода за границы. Т.е. сколько бы вы не добавляли новых элементов в перечисление, у вас всегда есть константа которая ровно на единицу больше последнего члена последовательности.
 
Текущее время: 03:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru