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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Mustik
56 / 56 / 2
Регистрация: 10.07.2011
Сообщений: 229
#1

Вопрос по директивам препроцессора - C++

28.02.2012, 00:23. Просмотров 392. Ответов 4
Метки нет (Все метки)

Использую VS 2008.
Работал с микроконтроллерами PIC с компилятором HI-TECH, так вот, там была такая директива ##n. Работала она так: допустим есть переменные Variable1 и Variable2.
C++
1
2
3
#define SetVarValue( n,value ) Variable##n = value
SetVarValue( 1,10 );    // аналогично Variable1 = 10
SetVarValue( 2,20 );    // аналогично Variable2 = 20
Т.е. ##n заменяется заданным значением из макроса и при n = 1, Variable##n будет аналогично Variable1, при n = 2 - Variable2.
Так вот, есть ли что-нибудь похожее в компиляторе VS 2008?
Допустим, если есть много checkBox'ов с номерами 1 - 100, чтобы не перечислять их по отдельности, написать какой-нить цикл, типа
C++
1
2
3
4
for( int i = 0; i < 100; ++i )
{
        checkBox##i->Text = i.ToString();    
}
Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2012, 00:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вопрос по директивам препроцессора (C++):

Директивы препроцессора Составить программу, использующую директивы препроцессора - C++
1) Задать константы M1,M2,...,M5 и вычислить M1+ 2M2 + 3M3 + 4M4 + 5M5 2) С помощью директив #if, #else, #elif осуществлять выбор строк...

Обработка препроцессора - C++
Дня доброго. Есть небольшая проблема #include&lt;iostream&gt; using namespace std; #define M 10 #ifndef N #define N 20 #endif ...

макрос препроцессора - C++
Здравствуйте ув. форумчани. Читаю книгу &quot;Философия с++. Введение в стандартный с++&quot;. Дошел к одному примеру. И все компилируется, но...

директива препроцессора - C++
Не получается запустить простенькую программу на С++ Borland,вроде сделал все как надо,но выдает ошибку что не может подключиться к...

Директивы препроцессора - C++
Помогите разобраться. Я не могу понять как работают директивы препроцессора. Где находится файл описания, файл реализации, нужно ли...

Директива препроцессора #if - C++
Вобще при коспиляции файла взятого с офф сайта микрософт endian.h Получаю вот такие ошибки 17|error: operator '==' has no left operand ...

4
alex_x_x
бжни
2449 / 1654 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
28.02.2012, 00:27 #2
Mustik, это стандартная конструкция языка, еще си причем
должно работать также
будет нечто
C++
1
2
3
#define SET_CB_TEXT(NUM, TEXT) do { checkBox##NUM->Text = TEXT; } while (0)
// ...
SET_CB_TEXT(3, i.ToString());
1
Mustik
56 / 56 / 2
Регистрация: 10.07.2011
Сообщений: 229
28.02.2012, 01:06  [ТС] #3
Цитата Сообщение от alex_x_x Посмотреть сообщение
Mustik, это стандартная конструкция языка, еще си причем
должно работать также
будет нечто
C++
1
2
3
#define SET_CB_TEXT(NUM, TEXT) do { checkBox##NUM->Text = TEXT; } while (0)
// ...
SET_CB_TEXT(3, i.ToString());
C++
1
2
3
4
for( int i = 0; i < 100; ++i )
{
        SET_CB_TEXT(i,i.ToString());
}
Жаль воспринимает i как chechBoxi
Может есть варианты?
0
alex_x_x
бжни
2449 / 1654 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
28.02.2012, 01:08 #4
Цитата Сообщение от Mustik Посмотреть сообщение
Жаль воспринимает i как chechBoxi
Может есть варианты?
вариантов нет, потому как иначе невозможно
код генерируется во время компиляции, переменные тут не могут участвовать

впрочем очевидно - используйте массив чекбоксов
1
Mustik
56 / 56 / 2
Регистрация: 10.07.2011
Сообщений: 229
28.02.2012, 01:14  [ТС] #5
Цитата Сообщение от alex_x_x Посмотреть сообщение
впрочем очевидно - используйте массив чекбоксов
Да, спасибо, я уже тоже задумался об этом.
Плохо, что придется вручную инициализацию этих чекбоксов делать или делать массив указателей на эти чекбоксы
0
28.02.2012, 01:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.02.2012, 01:14
Привет! Вот еще темы с ответами:

Использование препроцессора - C++
Здравия желаю!:) Есть ли смысл в конструкции #ifdef - #endif в данном коде, и если есть, то какой: class myClass { public:...

Директивы препроцессора - C++
помогите плз с прогой Директивы препроцессора Составить программу, использующую директивы препроцессора 1) вычислить...

Директивы препроцессора - C++
Добрый вечер, форумчане. Возникла проблема: В условии задания имеется - базовый класс и 2-х производных от него. При *подключении...

Директива препроцессора pragma - C++
Добрый день! Помогите, пожалуйста, не могу понять смысл такой записи. (интересуют строки с участием _PACKED(строки 2-6 и 51-60), и что...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru