在C中使用静态变量的唯一标识符

问题描述:

我需要在递归添加树时为树中的某些节点赋予唯一标识符。我写了这样的代码来解决问题:在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.

这将适用于单线程程序。对于多线程程序,您需要使用_Atomic

也就是说,我建议将它重构为一个单独的函数。

或者,考虑将计数器从全局变量移动到树根本身的成员。

是的,它会按预期工作。