C语言指针参数传递问题

2019-07-20 14:36发布

oid *myfree(void *p)
{
        uint32_t number,i;
        u8 *q = p;//为什么这里要赋给一个局部指针,不直接使用P进行操作呢
       
        number=(uint32_t)((q-MEM_BUFF[0])/MEM_BLOCK_SIZE);
        for(i=number;i<(MEM_BCT_TAB[number].num+number);i++)
        {
                MEM_BCT_TAB.mem_state=0;
        }
        MEM_BCT_TAB[number].num=0;
       
        return (void *)0;       
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
14条回答
zhoujianwen
2019-07-21 12:20
civic7366 发表于 2017-5-11 11:56
就是2F說的原因吧...
number=(uint32_t)(( q-MEM_BUFF[0])/MEM_BLOCK_SIZE);

void*声明函数的形参只是为了更好的接收不同类型的指针吧,局部定义的U8类型我觉得是,在内存分配的时候就是定义的U8类型,所以这样释放好点吧,我的重点不是这个啊,重点是我想知道直接用形参和局部参数的区别,用局部的相对于形参有什么好处吗

一周热门 更多>