c语言代码,注释写一下

刚刚开始,学习一年
单链表的代码,C语言的,
来个哥
帮我写个注释
要详细一点的
谢谢各位帮忙
给大家磕个头
img


void ListErase(Node** pHead, Node** pos) {//定义了一个没有返回值的函数,有两个形参,一个市Node指针的指针类型pHead,一个是Node的指针的指针类型的pos
    assert(pHead);//断言,如果pHead是空的,则触发错误
    assert(pos);//断言,如果pos是空的,则触发错误
    if ((*pHead)==NULL)//如果pHead指向的第一个指针指针为空
    {
        printf("链表为空!无法删除!\n");//则输出 链表为空!无法删除! 并换行
    }
    if (pos==(*pHead))//如果pos与pHead指向的第一个指针相同
    {
        ListPopFront(pHead);//则执行ListPopFront函数,传入参数为pHead
        return;//结束
    }
    Node* pE = *pHead;//定义一个Node指针pE,并把pHead指向的指针赋给它
    while (pE!=NULL)//如果pE是非空指针则进行循环
    {
        if (pE->_pNext!=NULL)//判断pE的_pNext成员不为空
        {
            pE->_pNext = pos->_pNext;//则,pE的_pNext成员等于pos的_pNext成员
            ListIDestroyNode(&pos);//执行ListIDestroyNode函数,摧毁pos
            return;//结束
        }
        pE = pE->_pNext;//如果pE的_pNext为空,则pE变为pE的_pNext成员(实际就是通过这种方式遍历pE链表)
    }
    return;//返回
}


//删除结点
void ListErase(Node** pHead, Node* pos)
{
    if ((*pHead) == NULL) //如果头指针为NULL直接结束
    {
        return;
    }

    if (pos == (*pHead)) //如果要删除的正好是头结点
    {
        ListPopFront(pHead); //直接将头结点删除
        return;
    }

    Node* pE = *pHead; //将头指针赋值给pE
    while (pE != NULL)  //当pE指针不为空
    {
        if (pE->_pNext != NULL)  //pE指针的Next(即pE指针指向下一个)不为空
        {
            pE->_pNext = pos->_pNext; //将欲删除的结点的Next指向 , 赋值给pE指针指向的下一个(解除了想删除结点的Next指向)
            ListIDestroyNode(&pos); //删除结点
            return;
        }
        pE = pE->_pNext; //指针指向下一个结点
    }
    return;
}

能不能贴成代码块,,你贴为图片我这边还要重新打一遍..

输入参数是两个指针,前者是指针的指针,后者是指针
assert()是输入参数检查
然后是一通比较,比较成功的就执行里面,
里面执行完成后,就跳出整个函数,不再执行其它内容