使用C中的静态变量的唯一ID

时间:2016-07-06 16:16:17

标签: c static

我需要在树中为某些节点提供唯一的ID,因为它们是递归添加的。我写了这样的代码来解决问题:

  } 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 个答案:

答案 0 :(得分:2)

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

尽管如此,我建议将其重构为一个单独的函数。

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

答案 1 :(得分:1)

是的,它会按预期工作。