在我的代碼下面variable1
只在第一次調用時被初始化爲0
。我擔心的是,在每個遞歸調用static variable1;
正在宣佈。這會導致問題跟蹤數字嗎?還是編譯器知道在每次遞歸調用中跳過聲明?這個靜態變量在這個遞歸senerio中的功能如預期的那樣?
我的代碼:
void funtion1(numberOfTimesCalled){
numberOfTimesCalled++;
static variable1;
if(numberofTimesCalled = 0){
variable1 = 0;
}
<some processing>
variable1= variable1+1;
if(variable1<10){
function1(numberOfTimesCalled);
}
}
你顯示的是不是有效的C代碼。同時解釋使用靜態變量的原因可能有助於確定您可能遇到的任何其他問題。 –
注意這個條件'if(numberofTimesCalled = 0){'總是假。它將'0'賦值給'numberofTimesCalled','ifif'中的表達式產生'0'。所以'if'條件總是錯誤的。這很可能是一個錯字。 –