2016-07-06 4 views
1

ツリー内の特定のノードに再帰的に追加されるユニークなIDを付ける必要があります。私は問題を解決するためにこのようなコードを書いた:Cで静的変数を使用するユニークなids

} 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

はい、期待どおりに動作します。

関連する問題