为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
Linux C语言结构体_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

Linux C语言结构体

雷过就跑 移动开发工程师
难度初级
时长 1小时30分
  • 结构体长度的计算:<br> 如结构体:<br> struct data{<br> int a;<br> char b;<br> char c;<br> };<br> int a的长度为4,偏移量为0,0是4的整数倍,不用填充;<br> char b的长度为1,偏移量为4,4是1的整数倍,不用填充;<br> char c的长度为1,偏移量为5,5是1的整数倍,不用填充;<br> 整个结构体目前占用的总空间为6,结构体中最长的元素为int a(4个字节),而6不是4的整数倍,所以需要填充2个字节,最后结构体的长度为8个字节
    查看全部
    1 采集 收起 来源:Linux C公用体

    2018-03-22

  • 共用体的作用就使不同的类型的变量共享同一个地址,好处是节省开销,缺点是同一时刻仅仅能存储一个成员。 共用体的大小是所有成员中占内存最长的长度,初始化时只能有一个常量。 结构体对象所占的空间大小涉及到一个字节对齐的问题。字节对齐的目的是让计算机快速读写,是一个以空间换取时间的方式。 结构体对象的大小= 最后一个成员的偏移量+最后一个成员变量的大小+填充字节 结构体做字节对齐的时候有这样一个准则:当前成员的偏移量必须是成员变量大小的整数倍,不是的话在后面填充字节。 最后还要判断结构体大小是不是成员中最大的整数倍不是的话还要填充。
    查看全部
    0 采集 收起 来源:Linux C公用体

    2016-02-01

  • 指针数组
    查看全部
    0 采集 收起 来源:结构体指针

    2016-02-01

  • 1. (*w).name 和 w->name 和 weapon_1.name 等价. (struct weapon_1 *w)
    查看全部
    0 采集 收起 来源:结构体指针

    2018-03-22

  • 结构体数组 定义 struct weapon weapon_2[2]={{"m16",50,100},{"m4a1",100,200}}; 引用 weapon_2[0].name
    查看全部
  • 定义struct weapon{ char name[20]; int atk; int price; }; 赋值struct weapon weapon_1={"weapon_name",100,200}; 使用printf("%s,%d,%d",weapon_1.name,weapon_1.atk,weapon_1.price);
    查看全部
  • 三种方式定义结构体: 1.struct weapon{ char name[20]; int atk; int price; }; struct weapon weapon_1; 2.struct weapon{ char name[20]; int atk; int price; };weapon_1; 3.struct { char name[20]; int atk; int price; }weapon_1; 第三种定义方式无法再定义下一个结构体变量了。
    查看全部
  • typedef int * p;<br><br> 就是让 【int *】 等于【 p】<br><br> p q=NULL//int * q=NULL;<br><br> <br><br> 系统给的size_t其实是typedef unsigned long size_t<br><br> <br><br> 1.typedef 是给某一个变量类型起别名,原来正统的变量类型名依然可以使用。<br><br> 但是typedef通常的用法是给自己定义的类型起别名。<br><br> 2.起的别名经过预处理后不会被替换。<br><br> 3.typedef的作用域相对于宏,比较局限,是局部的。
    查看全部
  • #define add(a,b) (a+b) //最好加上括号
    查看全部
  • 宏函数 #define N(n) n*10
    查看全部
  • 预处理阶段宏R被替换成了10,10不在是数字,而是一个字符串,宏替换就是单纯的字符串替换<br> <br> <br> c语言常量分为直接常量和符号常量:<br> #define 标识符 常量值(没有分号)<br> 宏的本质是在预处理阶段发生的单纯的字符串替换(宏替换);<br> 在预处理阶段,宏不考虑语法;
    查看全部
  • .c文件——.i文件<br> 预处理<br> gcc -o helloworld.i helloworld.c -E(只生成预处 展开了头文件,宏替换
    查看全部
  • 编译的过程: 预处理(.c) 编译(.i) 汇编(.s) 链接(.o)
    查看全部
  • (*w).name=w->name=weapon.name
    查看全部
    0 采集 收起 来源:结构体指针

    2018-03-22

  • 宏定义传递参数时要注意逻辑关系
    查看全部

举报

0/150
提交
取消
课程须知
本课程为C语言的中级课程 1、需要有一定的C语言基础,如有基础薄弱的童鞋可以看一下网站上其他3门C语言的课程 2、因在Linux环境下,需会一些Linux下的命令,可以看一下《Linux C语言编程原理与实践》此课。
老师告诉你能学到什么?
1、预处理是干什么的 2、结构体是什么 3、公用体是什么 4、位运算是怎么回事 5、如何实现动态数据结构体 6、递归的原理
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!