在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
。
也就是说,我建议将它重构为一个单独的函数。
或者,考虑将计数器从全局变量移动到树根本身的成员。
答
是的,它会按预期工作。