生活工程体验信仰哲学精神
投稿投诉
精神世界
探索历史
哲学文学
艺术价值
信仰创造
境界审美
体验技术
技能工具
工程信息
医学生产
生活运用
操作能力

C语言结构体(struct)用法详解

9月5日 断龙塔投稿
  粉丝问答
  有个粉丝在群里问了这样一个问题,问题在图中已经标出,如下图。
  DQuestsion
  头文件的结构体的定义为:typedefstruct{u8bmRequestTu8bRu16wVu16wIu16wL}USBRequestH
  虽然粉丝最后都理解了,但是仍想趁着这个机会整理一下结构体的用法,希望能够对刚入行的童鞋们有所帮助。结构体
  在实际的开发过程中,一组数据往往具有不同的数据类型,此时数组是不能够满足需求了。因为数组中各元素的类型必须是一致的。为了解决这个需求,C中给出了另一种数据类型结构体,每一个成员可以是任意一种数据类型。
  定义一个结构体的类型为:struct结构名{成员列表};
  其中struct后面的叫做结构体名,而struct结构名叫做结构体类型,只有结构体类型才可以定义变量,结构体名是不能定义变量的。注意}后面是需要加;的。structstu{XXX};stustu1;failstructstustu1;true三种结构体类型变量说明
  结构变量有以下三种方式。1。先定义结构,再定义结构变量structstu{};structstustu1;定义了变量stu12。定义结构体类型的同时说明变量structstu{}stu1;3。直接说明结构变量struct{}stu1;
  这种方法和第一种方法相比,就是省略了结构体名,而省略的结构体名,就无法组合结构体类型了,而无这种结构体类型,自然就不能再定义这种结构体类型的变量了。
  这种结构体也被称为匿名结构体,即没有结构体名。匿名结构体通常作为结构体成员的一个变量去使用。如下:structstu{struct{}}stu1;sut1。birthday。month10;用法结构体成员表示方法structstustu1,pstu1;pstu1stu1;stu1。age10;true(stu1)age10;truepstu1age10;true(pstu1)。age10;truepstu1。age10;fail
  如果对变量访问成员,则使用。运算符,如果是对指针访问成员则使用运算符。
  上例中除了最后一个都是对的。因为。运算符的优先级高于,所以会先执行pstu1。age,而pstu1是一个指针,不可以使用。运算符去访问,需要正确使用运算符访问。所以最终会报错。结构体指针做参数structstustu1;voidfun(structstuval);fun(stu1);
  在这里也有新手误解的地方,在函数入参这一块,传入的是一个指针,并不是说外部一定要先定义一个指针变量structstuxxx,然后把xxx传进去。就像下面一样。structstustu1;structstupstu1stu1;fun(pstu1);结构体初始化定义变量的同时初始化structstu{}stu1{18};先定义在初始化structstustu1,stu2;stu1。age18;stu2stu1;结构体之间可以直接赋值常用初始化
  在开发过程中,一个结构体之间会存在若干成员,极其复杂。这个时候通常是将成员全部清零,然后再对需要的成员进行构造。structstustu1;memset(stu1,0,sizeof(stu1));XXXInit(stu1。xxx);typedef与struct
  常规定义结构体类型需要用struct结构名的方式,比较繁琐。所以结构体定义往往与typedef相结合使用。
  如果使用下面这种方法,结构体名我通常是省略的,因为我已经不打算使用struct方式定义变量了。typedefstructstu{}STU;
  此时STU就等价于structstu,只不过换了个名字。structstustu1;trueSTUstu2;truestructSTUstu3;fail,多了structstustu4;fail,缺少struct前置声明
  在定义结构体的时候,往往会碰到这种情况,结构体成员中需要用到此结构体的类型。首先下面定义是正确的,如下:structstu{structstustu2;}stu1;
  如果和typedef一块使用,然后用重新定义的类型。就需要前置声明。typedefstructstuSTU;structstu{STUstu2;};
  这样成员变量中就不用struct加结构体名的形式定义了,直接可以用STU定义所需变量。结构体对齐
  结构如何对齐呢,使用的是伪指令pragmapragmapack(push,2)typedefstructstu{}STU;pragmapack(pop)
  2代表是以2个字节对齐的,此时sizeof(STU)等于6,因为sex为char型占1个字节,但是指定了两个字节对齐,所以分配给sex的内存实际有两个字节的空间。
  注意字节对齐是以2的n次幂对齐的。即1、2、4、8等。不能是3字节对齐。
  原文链接:C语言结构体(struct)用法详解
投诉 评论

地震波是怎么形成的地震又称地动、地振动,是地壳快速释放能量过程中造成振动,期间会产生地震波的一种自然现象。地震波是由地震震源发出的在地球介质中传播的弹性波。地球内部存在着地震波速度突变的基干界面……少女与战车影评精选《少女与战车》是一部由水岛努执导,渕上舞茅野爱衣尾崎真実主演的一部剧情动画类型的电影,特精心从网络上整理的一些观众的影评,希望对大家能有帮助。《少女与战车》影评(一):有……书的争吵一天晚上,人们都睡着了,一张课桌里热闹起来了。为什么热闹呢?原来,他们实是在争吵着谁更有用呢!最先发言的是语文书,她自豪的地说:谁都比不过我!因为我的肚子里装着许多……陶朱公和生意经千里传噩耗范蠡陪着越王勾践卧薪尝胆,又使出美女计,把吴王迷得不知天高地厚,终于灭了吴国。大功告成,范蠡知道勾践不是那能共富贵的人,把官印挂在梁上,不辞而别。几经辗转……C语言结构体(struct)用法详解粉丝问答有个粉丝在群里问了这样一个问题,问题在图中已经标出,如下图。DQuestsion头文件的结构体的定义为:typedefstruct{u8bmReque……买了还没建好的公租房,华大九天怎么保证房住不炒?10月26日,华大九天(301269。SZ)发布《关于对深圳证券交易所关注函的回复公告》。上周,因拟购买价值逾亿元的先租后售公租房,深交所下发关注函要求其说明和披露公租房先租后……中国男篮面临大洗牌!这五名球员或离开,杜锋要重新组建国家队止步八强,在亚洲级别的赛事中,只获得第八名,中国男篮这样的成绩有些让外界难以接受,什么时候我们面对亚洲的的球队,都这样艰难?不要把疫情、伤病当借口,黎巴嫩是一个战火纷飞的国家,……变异株OmicronBA。2。的传播发生大变化学者提三个建议龟兔赛跑,这次谁赢?上一次,乌龟以持之以恒的勇气和毅力赢得了胜利。但条件是,兔子跑跑停停,中途还睡着了。2020至2021年,中国以持之以恒的严格社交隔离,达到CO……77分,东契奇独木难支,以分数致敬自己名字1。东77率队以分数致敬自己名字3月10日常规赛中,东77率队致敬自己,全队仅得77分,尼克斯在客场以10777的大比分大胜独行侠。独行侠全场仅第三节得了31分,其余三节……人造太阳核聚变,是理想的终极能源吗?能源是驱动万物运行的根本动力。现今人类使用的能源主要有化石能源(煤、石油、天然气)、风能、水能、太阳能和核能(核电站发电),但这些能源都存在诸多缺陷,如面临资源枯竭、环境……培训必须注重训练前言:我计划把以前写的关于培训管理的文章潜心整理一下,以飨读者。一个好的培训课程,一定要有思想(对这件事情的看法),有方法论(套路),让学员不断训练,才能真正学会。……CBA广东男篮战胜天津男篮,球迷强烈呼吁归化广东队核心外援北京时间10月23日,常规赛第6轮比赛中,同曦加时战胜上海取得赛季第三胜。本场比赛过后,同曦取得3胜3负的战绩,胜场已超过上赛季的2场。此役,同曦送给上海四连败的同时,也是两队……
子宫囊肿是怎么形成的种偏方治疗子宫囊肿黄河流域三大沙漠都用上了亿利库布其治沙模式家用制氧机和氧气袋哪个好端午节假期安排时间表公布这次不调休苹果赚钱软件最快的是试玩应用试客粉底液干了怎么补救补救的方法有这些开心鬼上身观后感作文字颈椎病治疗秘籍自私,才是每个女人最该置顶的能力帽子功夫外贸网站推广外贸网站推广方案解析我国高速公路的安全管理体系建设措施2017中考素材团队合作的事例2019《财富》世界500强:129家中国公司上榜首超美国亲热前,女人有这些表现,一点都不爱你,别。。。你好,李焕英为何这么受欢迎?央媒和中纪委的发声给出答案不到3000元,两款12GB512GB大内存手机可选,都搭载华为的专业相机模式怎么设置井冈山烈士陵园婆媳关系中的矛盾类型我帮妈妈爸爸做家务作文摩旅西藏D8如果人生注定有遗憾,那就再去一趟错过的稻城埃隆马斯克在推特第1天表示,他将挖掘影子禁令指控妻子能否提起第三人撤销之诉?

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找