У меня есть простая функция Bar
, которая использует набор значений из набора данных, который передается в виде массива структур данных. Данные могут поступать из двух источников: постоянный инициализированный массив значений по умолчанию или динамически обновляемый кеш.Как передать массив const или массив переменных в функцию в C?
Вызывающая функция определяет, какие данные используются и должна быть передана в Bar
. Bar
не нужно редактировать какие-либо данные и на самом деле никогда этого не делать. Как мне объявить параметр данных Bar
, чтобы я мог предоставлять данные из набора?
union Foo
{
long _long;
int _int;
}
static const Foo DEFAULTS[8] = {1,10,100,1000,10000,100000,1000000,10000000};
static Foo Cache[8] = {0};
void Bar(Foo* dataSet, int len);//example function prototype
Примечание. Это C, NOT C++, если это имеет значение;
Редактировать
О, еще одна вещь. Когда я использую примерный прототип, я получаю предупреждение о несоответствии спецификатора типа (потому что я передаю изменчивую ссылку на массив const?). Что я должен изменить для этого?
+1, только потому, что я рад, что есть еще люди, которые не помещают свои вопросы 'C/C++' и делают разницу между ними: D – ereOn