如果我有一个函数按照某个规则递增global变量,并且我通过引用传递一个变量,是否必须执行返回或将变量更新吗?这是否也适用于局部变量?例如:如果我传递一个变量的地址,我必须做一个返回?
static uint8_t counter = 1;
void add(uint8_t *variable)
{
if (*variable == 5)
{
*variable = 7;
} else if (*variable == 20)
{
*variable = 1;
} else
{
*variable++;
}
}
而且我所说的 '添加' 功能类似的地方:
void function(void)
{
... some code...
add(&counter);
... some code...
}
也许我这样做是不正确的一般,有一个更好的方式去做这件事...... – NitrogenAir
如果你有一个全局(但'静态')变量,并且'add'函数是在同一个翻译单元,为什么要首先通过一个论点? –
看来你实际上正在传递指针的值(不是由ref),尽管这段代码通常没什么意义。如果这个变量是全局的,你就不需要传递它。另外,可能有两个add中的解除引用是不必要的。 – George