关于结构体声明与使用的问题
在我的程序中有个打印结构体的函数
- C/C++ code
#include <stdio.h>void display(struct persons *p)//定义struct persons { some code;}//初始化struct persons person={ some code;}int main(){ display();}void display(struct persons *p){ some code;}
这样通不过编译
但是下面的情况可以
- C/C++ code
#include <stdio.h>//定义struct persons { some code;}//初始化struct persons person={ some code;}void display(struct persons *p)int main(){ display()}void display(struct persons *p){ some code;}
是不是说如果用到结构体(作为参数或调用),需要事先知道结构体是什么结构?
第一种情况在函数声明时,是不是还不知道persons的结构,所以出错呢?
[解决办法]
函数声明中需要知道具体的类型
[解决办法]
或者先声明一下也可以:
struct persons;
自定义的类型,
系统不认识啊,
自然会报错了......