TI中文支持网
TI专业的中文技术问题搜集分享网站

一个关于cppi_desc.h中结构体定义的困惑

在pdk下面cppi/cppi_desc.h中定义了QMSS的描述符定义:

typedef struct{....
}Cppi_HostDesc;

typedef struct{....
}Cppi_MonolithicDesc;

typedef union{Cppi_HostDesc *ptrHostDesc;Cppi_MonolithicDesc *ptrMonoDesc;
}Cppi_Desc;

对于Cppi_Desc union为什么里面是指针呢? LLD的代码里面很多定义描述符是使用 Cppi_Desc * pCppiDesc; 然后调用 pCppiDesc = (Cppi_Desc*)Qmss_queuePop(queue); 来获得描述符指针,但这个 pCppiDesc 是指向union的指针,该union才是描述符指针,虽然代码里面都是直接使用强制转换从一种指针转换成(Cppi_HostDesc*)或(Cppi_MonolithicDesc*), 没有问题,但我觉得这里对Cppi_Desc的定义有点不妥,应该改成下面这样。

typedef union{Cppi_HostDesc ptrHostDesc;Cppi_MonolithicDesc ptrMonoDesc;
}Cppi_Desc;

不知道我的理解是否正确,还请各位工程师答疑。谢谢.

zi yang:

回复 Kevin Cai:

你好, Kevin Cai.

看来我把自己的想法说清楚了。用肯定没有错,只是指针的强转,因为没有使用union内的具体数据,只是在理解上钻牛角尖 的话有点不妥。 

谢谢你的回复。

赞(0)
未经允许不得转载:TI中文支持网 » 一个关于cppi_desc.h中结构体定义的困惑
分享到: 更多 (0)