替代用于分配结构散列键的全局变量

时间:2014-02-11 11:46:04

标签: c hash struct global-variables

如何实现一种方法来提供唯一的int,以便在不使用全局变量的情况下用作结构哈希表的哈希键?

请注意,可能有多个哈希表,但每个组成结构必须在所有哈希表中具有唯一键,因为表可以合并在一起

也许我应该使用全局变量,但感觉很顽皮

2 个答案:

答案 0 :(得分:1)

在某些情况下,全局变量很有用。

在这种情况下,如果你有多个线程,你可能想让它static(代码文件受限制)并通过执行正确互斥锁定的函数来访问它。

答案 1 :(得分:0)

继承我实施的内容:

enum CTROP {
   RESET=0,
   INCREMENT=1
};

int counter(enum CTROP ctr_op)
{
    static int n;

    switch (ctr_op) {
    case RESET:
        n=0;
        break;
    case INCREMENT:
        n++;
        break;
    default:
        print_err_log(ERR_LOG, "invalid arg for counter()", __FILE__, __LINE__);
        return -1;
    }
    return n;
}