声明与定义的不同?

blackempire 2009-04-17 01:31:08
struct apple;
struct apple;

没有错。

但是
struct apple
{
};
struct apple
{

};
却有错,为什么?
...全文
62 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
liliangbao 2009-04-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zmlovelx 的回复:]
你可以叫一个人的名字好几次,但是不能生一个人好几次.
[/Quote]
houhou,up
xiaocha 2009-04-17
  • 打赏
  • 举报
回复
声明是告诉编译器存在某个类型,而定义是告诉编译器这个类型的精确内容
声明可以多次,定义只能一次

就像你多次说有种东西叫apple,但什么是apple却只能有唯一的解释("定义")
帅得不敢出门 2009-04-17
  • 打赏
  • 举报
回复
你可以叫一个人的名字好几次,但是不能生一个人好几次.
sherrik 2009-04-17
  • 打赏
  • 举报
回复
已经是重定义struct apple了,会导致二义性,所以不能出现重定义。
sagegz 2009-04-17
  • 打赏
  • 举报
回复
结构体只能够定义一次,但声明可以多次.
wangyadong 2009-04-17
  • 打赏
  • 举报
回复
因为你重定义了结构体apple
声明可以多次,定义只能一次

70,024

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧