如果我有一個函數按照某個規則遞增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