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

Объясните, пожалуйста, фрагмент кода - C++

Восстановить пароль Регистрация
 
MMt
0 / 0 / 0
Регистрация: 29.04.2014
Сообщений: 168
05.07.2015, 22:49     Объясните, пожалуйста, фрагмент кода #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#define NUMLINES((int)(sizeof devcaps / sizeof devcaps [0]))
struct
{
int iIndex;
char *szLabel;
char *szDesc;
} devcaps [] =
{
HORZSIZE, "HORZSIZE", "Width in millimeters:",
VERTSIZE, "VERTSIZE", "Height in millimeters:",
HORZRES, "HORZRES", "Width in pixels:",
VERTRES, "VERTRES", "Height in raster lines:",
BITSPIXEL, "BITSPIXEL", "Color bits per pixel:",
PLANES, "PLANES", "Number of color planes:",
NUMBRUSHES, "NUMBRUSHES", "Number of device brushes:",
NUMPENS, "NUMPENS", "Number of device pens:",
NUMMARKERS, "NUMMARKERS", "Number of device markers:",
NUMFONTS, "NUMFONTS", "Number of device fonts:",
NUMCOLORS, "NUMCOLORS", "Number of device colors:",
PDEVICESIZE, "PDEVICESIZE", "Size of device structure:",
ASPECTX, "ASPECTX", "Relative width of pixel:",
ASPECTY, "ASPECTY", "Relative height of pixel:",
ASPECTXY, "ASPECTXY", "Relative diagonal of pixel:",
LOGPIXELSX, "LOGPIXELSX", "Horizontal dots per inch:",
LOGPIXELSY, "LOGPIXELSY", "Vertical dots per inch:",
SIZEPALETTE, "SIZEPALETTE", "Number of palette entries:",
NUMRESERVED, "NUMRESERVED", "Reserved palette entries:",
COLORRES, "COLORRES", "Actual color resolution:"
};
Собственно вот фрагмент. Я туго соображаю уже. Буду благодарен за помощь.
Моя версия:
Препроцессор в переменную NUMLINES запихнет размер массива devcaps. Точнее количество элементов из массива. тут их 60 штук, 20 строк по 3 элемента. Этофрагмент из Пецольда 1 часть. Работа с GDI под винду.
Спасибо!

я только не пойму зачем так закручивать...
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.07.2015, 22:49     Объясните, пожалуйста, фрагмент кода
Посмотрите здесь:

C++ Объяснить фрагмент кода
фрагмент кода C++
Объясните, что делает фрагмент кода C++
C++ Народ, объясните пожалуйста элементы кода (программа выводит год, месяц, день)
C++ Обьяснить фрагмент кода
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
05.07.2015, 22:58     Объясните, пожалуйста, фрагмент кода #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Ключевое слово sizeof позволяет получить количество байт, занимаемое объектом/типом.
Макрос NUMLINES позволяет получить количество элементов массива devcaps.
gazlan
2867 / 1815 / 272
Регистрация: 27.08.2010
Сообщений: 4,919
Записей в блоге: 1
05.07.2015, 22:59     Объясните, пожалуйста, фрагмент кода #3
Цитата Сообщение от MMt Посмотреть сообщение
зачем так закручивать
Обычная практика - поручить подсчет числа элементов массива компилятору.
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
05.07.2015, 22:59     Объясните, пожалуйста, фрагмент кода #4
Цитата Сообщение от MMt Посмотреть сообщение
я только не пойму зачем так закручивать...
У тебя есть вариант проще?
MMt
0 / 0 / 0
Регистрация: 29.04.2014
Сообщений: 168
05.07.2015, 23:40  [ТС]     Объясните, пожалуйста, фрагмент кода #5
Спасибо.
Да есть вариант проще. Поскольку, это раздел для новичков, то мне пальцем посчитать удобнее..
Буду знать, что есть макрос для автом. подсчет кол эл..

Спасибо.
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
05.07.2015, 23:56     Объясните, пожалуйста, фрагмент кода #6
Цитата Сообщение от MMt Посмотреть сообщение
Буду знать, что есть макрос для автом. подсчет кол эл..
Я не совсем правильно высказался.. Только в этом коде этот макрос будет так работать. Количество элементов считает следующая комбинации:
C++
1
sizeof( a ) / sizeof( a[0] )
Цитата Сообщение от MMt Посмотреть сообщение
Да есть вариант проще.
Покажешь?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.07.2015, 00:32     Объясните, пожалуйста, фрагмент кода
Еще ссылки по теме:

Объясните пожалуйста некоторые участки кода C++
C++ Объясните пожалуйста участок кода
Объясните фрагмент кода! C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
MMt
0 / 0 / 0
Регистрация: 29.04.2014
Сообщений: 168
06.07.2015, 00:32  [ТС]     Объясните, пожалуйста, фрагмент кода #7
Цитата Сообщение от MMt Посмотреть сообщение
Поскольку, это раздел для новичков, то мне пальцем посчитать удобнее..
уже)
Yandex
Объявления
06.07.2015, 00:32     Объясните, пожалуйста, фрагмент кода
Ответ Создать тему
Опции темы

Текущее время: 22:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru