gpt4 book ai didi

c - 变量在声明之前使用是怎么回事?

转载 作者:太空狗 更新时间:2023-10-29 17:20:31 25 4
gpt4 key购买 nike

我对 redis 实现的 dict.c 文件中的函数 dictCreate() 感到困惑。我要在这里粘贴代码:

/* Create a new hash table 
* T = O(1)
*/
dict *dictCreate(dictType *type, void *privDataPtr) {
dict *d = zmalloc(sizeof(*d));
_dictInit(d, type, privDataPtr);
return d;
}

变量dzmalloc(sizeof(*d))中使用,但理论上在执行这一行时它会存在。所以我的问题是如何在声明变量 d 之前使用它?

最佳答案

sizeof 不是一个函数,它是一个运算符。它在编译时执行(准确地说是评估),所以范围生命周期你正在考虑d,这里不适用。它只需要知道 *d类型,并且在编译时已知。足够了。

关于c - 变量在声明之前使用是怎么回事?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31836267/

25 4 0