[英]Use of typedef struct
typedef struct pjmedia_endpt pjmedia_endpt;
声明结构pjmedia_endpt endpt和pjmedia_endpt endpt不好(“变量的结构struct pjmedia_endpt endpt类型不完整”)。
我想声明pjmedia_endpt的变量,怎么办。
除非您完成这样的不完整类型,
struct pjmedia_endpt
{
member1;
member2;
...
};
您不能使用pjmedia_endpt
。
完成结构后,即可使用
pjmedia_endpt temp; // Declare a variable to it
您的typedef
建立一个前向声明。 在此向前声明之后,您可以定义类型为“指向pjmedia_endpt
指针”的变量,如下所示:
pjmedia_endpt *ptrVar;
但是,仅在提供实际定义之前,向前声明本身不足以声明变量或struct
字段。 您需要先定义pjmedia_endpt
的实际结构,然后才能开始使用新定义的类型pjmedia_endpt
进行变量声明:
struct pjmedia_endpt {
...
};
您必须使用typedef
来基于预定义的结构或类型定义新类型。 否则,除非定义pjmedia_endpt结构,否则无法使用该新类型声明变量。
首先定义您的结构:
struct pjmedia_endpt{
// ...
};
然后,您可以为您的结构分配类型名称:
typedef struct pjmedia_endpt pjmedia_endpt;
然后,您可以使用新类型声明一个变量:
pjmedia_endpt someVariable;
这是一个需要pjmedia_endpt的功能。 pjmedia_transport_udp_create(pjmedia_endpt * endpt,...);
实际上我需要的是一个指针,所以
//declare a pointer.
pjmedia_endpt* endpt;
//do init endpt.then pass pointer to the function.
pjmedia_transport_udp_create(endpt,...);
typedef struct pjmedia_endpt{
// ...
};
// Now Rename the structure
pjmedia_endpt newname;
// And now you can access the member of structure with newname.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.