C не работает так, как вы, возможно, думаете. Вы не можете динамически ссылаться на имя переменной во время выполнения, к которой вы привыкли в других языках.
Тем не менее, имя аргументов функции не имеет значения.
void do_work(int arg)
{
}
Вам не нужно сопоставлять имя arg
с foo0
или foo1
. Теперь вы можете передать любую переменную в функцию:
int foo0, foo1;
if (some_condition)
do_work(foo0);
else
do_work(foo1);
Теперь функция do_work
будет работать с копией переданной переменной. Таким образом, если вы измените значение переменной внутри функции, она останется неизменной за пределами функции. Вы можете изменить это, вернув новое значение:
int do_work(int arg)
{
return arg + 1;
}
foo0 = do_work(foo0);
Наконец, похоже, что вы хотите использовать массив:
int foo[2]; // create two ints: foo[0] and foo[1]
do_work(foo[0]);
int i = 1;
do_work(foo[i]);