我有一個ptr
變量在函數中更新。我想將這個變量傳遞給function2
,這是在另一個.c文件中。 將靜態變量傳遞給不在同一個.c文件中的函數是合法的嗎?如果沒有static
關鍵字,只保留全局ptr
會更安全嗎?將靜態變量傳遞到函數
static Event * ptr = NULL;
void function(Event * newPtr)
{
ptr = newPtr;
function2(ptr);
}
//in separate c file
void function2(Event * pointer)
{
pointer->event = 2;
}
是的,這是合法的。不管它是否「正確」取決於該功能對數據的作用。 – StoryTeller
當你在一個函數調用中使用一個變量時,你並不真正傳遞這個變量本身,它只是* value *。或者說,它的價值*拷貝*。 –
爲什麼'function2(ptr)'而不是'function2(newPtr)'直接? –