今天在定义结构体的时候发现typedef struct与struct定义结构体有一些不同之处:

结构也是一种数据类型, 能够使用结构变量, 因此,  象其他 类型的变量一样, 在使用结构变量时要先对其定义。   

定义结构变量的一般格式为:   

     struct 结构名   

     {   

  

          类型  变量名;   

  

          类型  变量名;   

  

          ...   

  

     } 结构变量;   

  

 结构名是结构的标识符不是变量名。   

还有一种经常使用格式为:      

 typedef struct 结构名   

     {   

  

          类型  变量名;   

  

          类型  变量名;   

  

          ...   

  

     } 结构别名;    

另外注意:  在C中,struct不能包括函数。在C++中,对struct进行了扩展。能够包括函数。

编程中gcc报错: expected specifier-qualifier-list before sth

网上查了下出错原因,解释例如以下:

在使用GCC时常常会遇到expected specifier-qualifier-list before sth之类的错误。specifiers是指void、char、struct Foo等词汇;qualifiers是指像const和volatile一类的keyword。一个词汇在没有定义之前就使用就会出项这样的错误。能够通过typedef进行定义以后再使用。出错语句例如以下所看到的:

typedef struct {
int name[20];
int id;
stu *next; //报错
} stu;

解决方法

typedef struct {
int name[20];
int id;
struct stu *next; //通过编译
}stu;

用struct定义结构体也会有相同的问题。解决方法也一样。

最新文章

  1. Vertica集群单节点宕机恢复方法
  2. JS继承模式粗探
  3. vb.net下载代码
  4. 设置pictureBox的边框颜色
  5. hdu 4612 Warm up
  6. 树莓派raspbian安装配置(基本配置+中文配置+远程桌面+lighttpd+php+mysql)
  7. qt helper
  8. NgNice项目案例
  9. input, textarea,监听输入事件
  10. 存储数据键和项目对的类(Dictionary对象)
  11. 20170305Meetup Git、heroku drop db
  12. 初次尝试Linux并记录一二
  13. sourceTree如何不用注册就使用
  14. Java常用日期操作
  15. iOS 之地图坐标体系和转换
  16. 详解Android数据存储技术
  17. OPTIMIZE TABLE linked list 表优化原理 链表数据结构 空间再利用
  18. [osg][osgEarth][原]基于OE自定义自由飞行漫游器(第二版)
  19. Android WiFi 扫描流程分析(wpa_supplicant)
  20. 详细分析Java中断机制[转]

热门文章

  1. nodeJS学习(7)--- WS开发 NodeJS 项目-节2 <安装&设置&启动 mongodb 数据库++遇到的问题>
  2. 转:mysql 索引
  3. Iframe载入页面 及 跳转页面
  4. luogu 3406 海底高铁 前缀和
  5. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---35
  6. Oracle SQL优化进阶学习
  7. asp.net mvc 自定义模型绑定
  8. python 安装cx_Oracle模块, MySQLdb模块, Tornado
  9. 微信公众号开发C#系列-12、微信前端开发利器:WeUI
  10. servlet与线程与jdbc connection的关系