реклама на сайте
подробности

 
 
> Целочисленные переменные в препроцессоре?
ArtemKAD
сообщение Jul 31 2013, 16:45
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Собственно сабж. Есть ли возможность в препроцессоре завести переменную которая будет меняться на этапе работы препроцессора? По сути достаточно простого инкремента для автоматической иннициализации некоторых ячеек массива.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
KRS
сообщение Jul 31 2013, 19:29
Сообщение #2


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



можно использовать
__LINE__
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение Aug 1 2013, 19:32
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Цитата(KRS @ Jul 31 2013, 22:29) *
можно использовать
__LINE__

Попробовал. Даже вроде примерно то что надо...
Вот только IAR-отладчик начал вываливаться при запуске с фатальной ошибкой sad.gif ...

Цитата(scifi @ Jul 31 2013, 21:05) *
Вы лучше подробнее опишите задачу. Может быть, что-то конструктивное удастся посоветовать.

Есть диспетчер задач. К каждой задаче индекс. Индекс - уникальная константа от 0 до ... Так вот хотелось бы перестать значение индекса для каждой задачи писать вручную - когда много, можно случайно индексы продублировать.

Цитата(Непомнящий Евгений @ Aug 1 2013, 08:20) *
Можешь поиграться с boost/preprocessor

Чесно говоря не сильно понял как работает. Но насколько понял это дополнение для ++ . В чистом IAR Си оно заработает?
Go to the top of the page
 
+Quote Post
dxp
сообщение Aug 2 2013, 06:21
Сообщение #4


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



QUOTE (ArtemKAD @ Aug 2 2013, 02:32) *
Есть диспетчер задач. К каждой задаче индекс. Индекс - уникальная константа от 0 до ... Так вот хотелось бы перестать значение индекса для каждой задачи писать вручную - когда много, можно случайно индексы продублировать.

Можно воспользоваться свойством статических переменных. Написать функцию:
CODE
int num()
{
    static int N;
    return ++N;
}

И задавать в каждой инициализации вызов функции вместо указания значения вручную. Гарантировано будут выдаваться разные значения. Для оптимизации можно функцию определить прямо в c/cpp файле как static, тогда компилятор вообще получит возможность заменить вызовы на подстановку значений (зависит от интеллекта компилятора и степени оптимизации).


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 18:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.01413 секунд с 7
ELECTRONIX ©2004-2016