2016-07-06 40 views
1

我需要在遞歸添加樹時爲樹中的某些節點賦予唯一標識符。我寫了這樣的代碼來解決問題:在C中使用靜態變量的唯一標識符

} else if (deapTree[0] == -1){ 
    static int const_idx; 
    //bla bla bla 
    root->idx = const_idx; 
    //bla bla bla 
    const_idx++; 
    } else { 

這樣工作,我打算?含義const_idx將從0開始,然後每當到達if的分支時,它就會增加1.

回答

2

這將適用於單線程程序。對於多線程程序,您需要使用_Atomic

也就是說,我建議將它重構爲一個單獨的函數。

或者,考慮將計數器從全局變量移動到樹根本身的成員。

1

是的,它會按預期工作。