关于typdef在结构体定义中一个不易发现的常见错误

最近因为有一场重要的考试,重新学习一下数据结构,我是使用C语言描述。

	//关于typdef在结构体中常见的书写方式
	typdef struct Student
	{
		int sid;
		char name[100];
		char sex;
	}STU,*PSTU;			//STU等价于struct Student  .  *PSTU等价于struct Student*;
	
	//因此我们可以在定义Student的数据类型简写为
	STU stu ;
	PSTU pStu;			//定义指针类型的Student

然而我在写链表节点的时候却一直出现错误,代码如下:

	//错误代码
	typedef struct node
	{
		int data;
		PNODE pNext;		
	}NODE,*PNODE;

编译器一直提示我 "error C2061: 语法错误 标识符’PNODE’ ",找不到原因后查阅错误提示。如下
error C2061
说我没有提前声明,恍然大悟!因为C语言的编译原理,PNODE应该在使用时被提起前声明,或者修改成如下代码:

	//修改后的正确代码
	typedef struct node
	{
		int data;
		struct node * pNext;		
	}NODE,*PNODE;
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值