一个很简单的C问题

qq675927952 2008-11-17 06:13:37
想知道 所谓的声明语句到底是什么,变量是在什么时候分配内存的,声明和定义有什么区别,
如struct node
{
int a;
int b;
};
此时是声明,
node t;这应该是定义了吧, 变量应该是在定义的时候分配内存的吧。
请高手指点。
...全文
119 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
函数的声明是函数的原形,而函数的定义是函数的本身
把建立存储空间的声明称定义,而把不需要建立存储空间的声明称为声明
chenqiang35 2008-11-17
  • 打赏
  • 举报
回复
声明相当于普通的声明:它所说明的并非自身,而是描述在其他的地方创建的对象,即指代其他地方定义的对象;
定义相当于特殊的声明:它为对象分配内存,用于创建新对象;
asak_1 2008-11-17
  • 打赏
  • 举报
回复
2楼的分析得很具体,只有在定义一个具体的变量时才分配内存。
zsf0615020117 2008-11-17
  • 打赏
  • 举报
回复
恩 在定义具体变量时分配内存
太乙 2008-11-17
  • 打赏
  • 举报
回复
声明非定义!
定义非声明!
长安宁 2008-11-17
  • 打赏
  • 举报
回复

正确的声明和结构体定义应该这样写:
extern struct node c;
struct node
{
int a;
int b;
} c;
长安宁 2008-11-17
  • 打赏
  • 举报
回复
区分,声明和定义最简单的方法;你把你认为是声明的东西,再复制一遍,如果错误,就是定义;反之,即为声明
yuwei2589 2008-11-17
  • 打赏
  • 举报
回复

struct node
{
int a;
int b;
}; //是结构体定义。

node t;//是变量声明和定义(声明和定义可以是一起的,也可以分开)

//分开的情况,比如说在file1.c中定义了一个
int g_data;//此处为定义
//file2.c
extern int g_data;//此处就为声明



cyj626 2008-11-17
  • 打赏
  • 举报
回复
是的

69,371

社区成员

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

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