微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在声明之前使用变量?

我对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;
}

变量d用于zmalloc(sizeof(* d)),但理论上它在执行此行时将存在.所以我的问题是如何在声明之前使用变量d?

解决方法

sizeof不是函数,它是一个运算符.它在编译时执行(精确评估),因此您考虑的范围或生命周期d不适用于此处.它需要知道的是* d的类型,并且在编译时已知.足够.

原文地址:https://www.jb51.cc/c/111288.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐