传递给C中的函数arg时结构指针和结构之间的差异

时间:2010-11-04 12:12:47

标签: c pointers struct

我有以下查询:

这是我在某些.h文件中的结构

typedef struct 
    {
        recUEInfo_t  *recUEInfoPtr_t;
        Int32   frameID;
        Int32   slotIndx;
        Int32   symNumber;

    }   recControlList;

如果我做recControlList recControlListPtr;我可以将地址传递给调用者函数 并将其作为定义

中的指针收集
Fun(recControlListPtr);/* caller*/

void Fun(*recControlListPtr);/* actual func*/

但如果我recControlList *recControlListPtr;那么我该怎么办呢 得到正确的指针?

请帮忙

1 个答案:

答案 0 :(得分:3)

我最初误解了谁是该函数的声明者和调用者,对不起,所以如果函数定义是:

Fun(recControlListPtr *precControlListPtr)
{
    // Do stuff
}

你可以这样打电话:

recControlListPtr rec1;
recContrlListPtr* prec2;
Fun(&rec1);
Fun(prec2);

其他编辑 - 我最好猜测我认为你想要完成的事情

typedef struct 
{
    recUEInfo_t  *recUEInfoPtr_t;
    int   frameID;
    int   slotIndx;
    int   symNumber;

}   recControlList;

void Fun(recControlList* pRecList)
{
    ASSERT(pRecList != NULL);
    int nFrameID = pRecList->frameID; // This line shows accessing the struct
    // Do other stuff
}

recControlList  rec1;
recControlList* pRec2 = &rec1;
Fun(&rec1);
Fun(pRec2);