我需要输入结构指针,然后在其字段中使用新类型。
我的意思是代替:
public String getElement() //Doesn't have to be a String
{
return someString;
}
我需要在struct app
{
char *data;
struct app *ptr;
}
某处输入typedef,然后使用它:
typedef app* appPtr;
我怎么能这样做?
PS:我需要同时使用struct app
{
char *data;
appPtr ptr;
}
& appPtr
种类型。
答案 0 :(得分:2)
可以使用struct
的前向声明来完成。这是一个示例代码,它实现了这个概念:
#include <stdio.h>
struct app;
typedef struct app* appPtr;
struct app
{
char *data;
appPtr ptr;
};
int main(void)
{
struct app myApp = { "myApp", NULL };
printf("%s, %p\n", myApp.data, (void *) myApp.ptr);
return 0;
}
但是,正如问题评论中所提到的,我不建议将其作为正确的做法,因为它会混淆代码,并且事情会因更多层次的间接而变得混乱。