struct/enum/union加typedef与不加typedef

匿名结构体

struct {
int a;
int b;
} v; // 这里表示定义了一个结构体的变量v,且结构体类型没有名字,后续不能再定义结构体,除非又把结构体写一遍。

有名字的结构体

- 直接定义变量
struct struct_type{
int a;
int b;
} v; // 这里表示定义了一个结构体的变量v,且结构体类型的名字为 "struct struct_type"
// 后续要定义结构体变量的时候要使用"struct struct_type"
// 有的编译器使用struct_type定义变量也是可以的,class一样。 struct struct_type b; // 定义结构体变量b
  • 使用typedef命名
typedef struct {
int a;
int b;
} S_TYPE;
// 或者
typedef struct struct_type {
int a;
inb b;
} S_TYPE; // 两种定义方式都可以使用"S_TYPE"定义结构体变量,第二中还可以使用"struct struct_type"或者sturct_type定义结构体变量。
// 使用了typedef就不能在定义类型的时候也声明变量。 S_TYPE v;
  • 特殊的emue,emue中定义的值其实就是define
typedef emue {
RED, BLUE,GREEN //域之间是用“,”分开,不像struct和union是用“;”分开。
} color;
// 等效于
// #define RED 0
// #define BLUE 1
// #define GREEN 2 color c = RED; // 由于域是define的,也就是全局的,可以直接使用
  • 联合union(就是共享空间的结构体,结构体中每个域都分配空间,而联合体中每个域是共享空间的)
typedef union {
int i; // i和f是共享空间的
float f;
} num; num.f = 100; // 给i和f的共享空间赋值了
print("%0d, %0f,", num.i, num.f); // 输出1120403456, 100.0000,整型的值,就是浮点值的二进制对应的值。

最新文章

  1. JavaScript基本语法(四)
  2. 夺命雷公狗-----React---4--props变量的传递
  3. datatable-提示
  4. java微信接口之五—消息分组群发
  5. spring - ioc和aop
  6. Mysql 系统参数 系统变量 状态变量
  7. js——常见的小方法
  8. 用C#写的读写CSV文件
  9. hdu1753I Hate It(线段树)
  10. Java实战之03Spring-01Spring概述
  11. node论坛练手
  12. JQUERY1.9学习笔记 之基本过滤器(九) 小于选择器
  13. Html.RenderPartial与Html.RenderAction区别(转)
  14. Java语言实现简单FTP软件------>FTP软件远程窗口的实现(六)
  15. Math.round(),Math.ceil(),Math.floor()的区别
  16. 数据结构之链表-链表实现及常用操作(C++篇)
  17. centos7设置静态ip
  18. 分布式进阶(十一) Docker 常见错误汇总
  19. table动态增加删除
  20. 页面嵌套iframe后,点击里面的链接,然后父窗口跳转(子窗口控制父窗口的链接跳转)

热门文章

  1. VM搭建Hadoop环境遇到的问题
  2. 【Java】IntelliJ IDEA 快捷键
  3. 【记录一个问题】用毫无用处的方法解决了libtask的asm.S在ndk下编译的问题
  4. 保存网页到zotero研究
  5. golang中函数的可变参数
  6. 机器学习-逻辑回归与SVM的联系与区别
  7. numpy常用函数记录
  8. linux虚拟化
  9. SharePoint Online 触发 Outlook 邮件内审批
  10. 守护石谈学习Java之路