Оптимально передать функции постоянные параметры
От: alx7235  
Дата: 24.04.11 06:33
Оценка:
Привет! По заголовку темы непонятно, что требуется, попробую объяснить.
Нужно сделать функцию, которой передается довольно много параметров, часть которых задаются один раз при запуске программы, т.е. не изменяются в течение работы, а функция вызывается постоянно при работе программы — т.е. функция должна выполняться максимально быстро (работаю на микроконтроллере). Можно эти параметры определить как глобальные переменные или константы и все ОК, но хотелось бы чтобы функция не использовала глобальные переменные (нужно сделать реентрабельную функцию). Можно передать по указателю или по значению, но тогда получается, что всегда при вызове функции буду передавать постоянные значения — как-то криво. Если же запихнуть внутрь функции, то получается там буду делать присваивание при вызове, что отнимает ресурсы. Предложите, пожалуйста, решение если вообще это возможно?

Вот варианты которые не подходят
1. Глобальные преременные — плохо
int a=10;
int b=20;
int c=30;
int func(int m,n)
{
...
};

2. По значенияю или указателю — самый хороший вариант, но постоянно передаю конст. значения при вызове
int a=10;
int b=20;
int c=30;
int func(int m,n,a,b)
{
...
};

3. Как локальные — при каждом вызове функции будет тратится проц. время на присваивание
int func(int m,n)
{
int a=10;
int b=20;
int c=30;
...
};

Заранее спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.