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

Linux C语言结构体

雷过就跑 移动开发工程师
难度初级
时长 1小时30分
  • clang 预编译流程
    查看全部
  • 结构体做字节对齐的时候有这样一个准则:当前成员的偏移量必须是成员变量大小的整数倍,不是的话在后面填充字节。 最后还要判断结构体大小是不是成员中最大的整数倍不是的话还要填充。
    查看全部
    0 采集 收起 来源:Linux C公用体

    2015-12-18

  • 结构体长度的计算: 如结构体: struct data{ int a; char b; char c; }; int a的长度为4,偏移量为0,0是4的整数倍,不用填充; char b的长度为1,偏移量为4,4是1的整数倍,不用填充; char c的长度为1,偏移量为5,5是1的整数倍,不用填充; 整个结构体目前占用的总空间为6,结构体中最长的元素为int a(4个字节),而6不是4的整数倍,所以需要填充2个字节,最后结构体的长度为8个字节
    查看全部
    0 采集 收起 来源:Linux C公用体

    2015-12-18

  • 2.stuct长度=最后一个成员大小+最后一个成员偏移量+填充值;结构体中的成员的偏移量需是自身长度的整数倍(不够就填充);
    查看全部
    0 采集 收起 来源:Linux C公用体

    2015-12-18

  • struct weapon weapon1; printf("name=%s\n",weapon1.name); 当引用对象为指针时,有两种引用方式: struct weapon *w; w=&weapon_1; prinf("name=%s\n",(*w).name);//w->name
    查看全部
    0 采集 收起 来源:结构体指针

    2018-03-22

  • 结构体指针,只想所定义的结构体函数(*W).name中的点是不能被省略的点的运算符高。
    查看全部
    0 采集 收起 来源:结构体指针

    2015-12-18

  • KZ22 (*w)两边的括号不能省略 否则就会变成另外的含义
    查看全部
    0 采集 收起 来源:结构体指针

    2015-12-18

  • 1 数据类型关键字 (1) char:声明字符型变量或函数 (2) double:声明双精度变量或函数 (3) enum:声明枚举类型 (4) float:声明浮点型变量或函数 (5) int:声明整型变量或函数 (6) long:声明长整型变量或函数 (7) short:声明短整型变量或函数 (8) signed:声明有符号类型变量或函数 (9) struct:声明结构体变量或函数 (10) union:声明共用体(联合)数据类型 (11)unsigned:声明无符号类型变量或函数 (12)void:声明函数无返回值或无参数,声明无类型指针(基本就这三个作用) 2 控制语句关键字(12个): A循环语句 (1) for:一种循环语句(只可意会不可言传) (2) do:循环语句的循环体 (3) while:循环语句的循环条件 (4) break:跳出当前循环 (5) continue:结束当前循环,开始下一个循环 B 条件语句 (1) if:条件语句 (2) else:条件语句否定分支(与if连用) (3) goto:无条件跳转语句 C 开关语句 (1) switch:用于开关语句 (2) case:开关语句分支 (3)default:开关语句中的“其他”分支 D 返回语句 (1) return:子程序返回语句(可带参数,也可不带参数) 3 储存类型关键字(4个) (1) auto:声明自动变量一般不使用 (2) external:声明变量是在其他文件正声明(也可以看做是引用变量) (3) register:声明积存器变量 (4) static:声明静态变量 [ 收起全文 ]
    查看全部
  • 4 其他关键字(4个): (1) const:声明只读变量 (2) sizeof:计算数据类型长度 (3) typedef:用以给数据类型取别名(当然还有其他作用) (4) volatile:说明变量在程序执行中可以被隐含地改变) 5 C语言中的9中控制语句 (1) goto语句:无条件转向; (2) if语句:判断语句; (3) while:循环语句; (4) do-while语句:先执行循环体,然后判断循环条件是否成立,之后继续循环; (5) for语句:循环语句,可代替while语句;只是用法不同; (6) break语句:跳出本层的循环(只跳出包含此语句的循环) (7) continue语句:继续(一般放在循环语句里,不在执行他下面的语句,直接跳到他下面的语句,列:for语句,就直接跳到第二个分号处;while语句,就直接跳到while()的括号里;) (8) switch语句:多项选择; (9) return语句:返回;
    查看全部
  • struct weapon{ char name[20]; int atk; int price; }weapon_1; 其中struct weapon是结构体类型的名称(比如int) weapon_1是结构体变量的名称(比如a) struct weapon weapon_1 就像 int a
    查看全部
  • 结构体是不同类型数据的组合 数组是相同类型数据的集合
    查看全部
  • 宏 无限作用域 typedef 有限作用域 typedef主要用于给数据类型起别名 如:typedef int tni; 那接下来就可以用 tni a=4 预处理时typedef所指的内容不会被替换。
    查看全部
  • 宏定义的类型计算不考虑数据类型
    查看全部
  • 宏定义的替换只是单纯的字符串的替换
    查看全部
  • 预处理阶段,不会进行运算操作,只进行替换;在编译时,才进行运算; 若想得到预想结果,加()即可; 宏函数: 返回值类型 参数列表; 不考虑c的语法,不管什么类型,都当做字符串处理;
    查看全部

举报

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

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