当前位置: 首页 > news >正文

怎样建立一个营销网站app软件开发公司哪家好

怎样建立一个营销网站,app软件开发公司哪家好,100个简单的手工小制作,分析网站建设流程1.结构体 1.1实际生活中一些东西往往有多个元素组成。如一名学生有身高、体重、名字、学号等。这时候就需要用到结构体。 结构体是一些值的结合#xff0c;这些值被称为成员变量。结构体的每个成员可以是不同类型的变量#xff0c;如#xff1a;标量、数组、指针、甚至是其…1.结构体 1.1实际生活中一些东西往往有多个元素组成。如一名学生有身高、体重、名字、学号等。这时候就需要用到结构体。 结构体是一些值的结合这些值被称为成员变量。结构体的每个成员可以是不同类型的变量如标量、数组、指针、甚至是其他结构体。 1.2结构的声明(struct是结构体关键字) struct tag//结构体类型 {         member-list//结构体成员 } variable-list//变量 如描述一个学生时 1.先定义结构体类型在定义结构体变量 struct student {         char name[20];         double height;         int age; } ; struct student stu1,stu2; 2.定义结构体和变量  struct student {         char name[20];         double height;         int age; }stu1,stu2 ; 3.直接定义变量匿名结构体 struct {         char name[20];         double height;         int age; }stu1 ·匿名结构体如果没有对结构体进行重命名的话基本上只能使用一次。  ·结构体定义不分配地址结构体变量会分配地址。 ·结构体变量的声明必须在主函数上或者主函数中 1.3结构体的初始化基于上述描述学生代码 int main() {         struct stu s1{zhangsan,1.85,18};         struct stu s2{lisi,1.78,16};         ……; } 1.4结构体的访问 1.结构体成员的直接访问成员访问操作符. s1.name  s1.age 2. 结构体成员间接访问 stuct student*ps1; p-age18; p-namezhangsan 1.5typedef关键字与结构体 typedef struct student {         char name[20];         int age; } stu;//相当于struct student; stu s1{zhangsan,18}; stu*ps1; typedef主要目的是使结构体表达更加简洁可以理解为给结构体重命名。 1.6结构体的自引用 struct student {         int age;         struct student; };  上述写法正确吗我们从sizeof(student)角度来分析一个结构体包含自己显然它的大小就是无穷大这是不合理的。所以想要一个结构体进行自引用应该让结构体包含自己的指针 struct student {         int age;         struct student*NEXT; } ; 2.1结构体内存对齐 结构体的创建与初始化我们已经掌握了接下来我们来探讨一个问题计算结构体的大小这就联系到结构体内存对齐 1.对齐规则 1.1结构体的第一个成员对齐到和结构体变量起始位置偏移量为0的地址出 1.2其他成员变量要对齐到某个数字对齐数的整数倍的地址处 对齐数编译器默认对齐数和该成员变量大小的较小值 -VS中默认对齐数是8 -Linux和gcc中没有默认对齐数对齐数就是成员自身的大小 1.3结构体的总大小为最大对齐数的整数倍 1.4如果一个结构体中嵌套了别的结构体嵌套结构体对齐到自己成员中最大对齐数的整数倍 由上面两张图可以发现结构体成员定义先后顺序不同结构体的大小也不一样。这是为什么呢接下来就用结构体内存对齐来讲解下。VS环境 第一幅图a填在偏移量为0的地方i为int类型对齐数为4所以必须填在4的整数倍的位置所以i填在4处b为char类型对齐数为1所以只要填在1的整数倍的位置 所以接在i下面填在8出但是0~8的大小为9该结构体中最大对齐数是i的对齐数49不是4的倍数所以结构体最后大小是12。 图二同理可以自己去验证下。 2.为什么会存在内存对齐 1.平台原因移植原因 不是所有的硬件平台都能访问任意地址上的任意数据的某些平台只能在某些地址处取某些特定类型的数据否则抛出硬件异常。 2.性能原因 数据结构尤其是栈应该是尽可能地在自然边界上对齐。原因在于为了访问未对齐的内容处理器需要作两次内存访问而对齐的内容访问仅需要访问一次。假设处理器总是从内存中去8个字节则地址必须是8的倍数如果我们能保证将所有的double类型的数据都对齐成8的倍数那么就可以用一个内存操作来读或者写值了。否则我们可能需要执行两次访问因为对象可能被分在两个8字节内存块中。 总的来说结构体内存对齐就是那空间来换时间的做法。 所以如果我们在设计结构体的时候既要满足对齐又要节省空间就要对定义成员的顺序进行一定的规划。如上面两张图的差别。 3.修改默认对齐值利用#pragma #pragma pack(4)//修改默认对齐数为4 struct  s {         …… }; #pragma pack()//取消设置的对齐数还原为默认 int main() { } 3.1结构体实现位段 1.什么是位段 1.1位段的成员必须是Int、unsigned Int、signed int 、char。在c99中位段成员的类型也可以选择其他类型 。 1.2位段的成员后边有一个冒号和一个数字。 位段的目的节省空间 struct A {         int _a:2;         int _b:5;这里的数字是指比特位bit         int _c:10;         int _d:30; }; A就是位段的类型。位段A所占大小为8字节原理25103047bit 一个int(整型)四个字节32个比特位显然一个整型不足以存放位段A所以需要两个整型也就是8个字节 1.4位段的空间上是按照需要以4个字节int或者1个字节char的方式来开辟。 1.5位段涉及很多不确定的因素位段是不跨平台的注重可移植的程序应该避免使用位段 1.6开辟位段空间 VS环境下的位段开辟1.从右向左使用。 2.如果剩余的空间不够下一个成员使用就浪费。 struct S {         char a:3;         char b:3;         char c:4;         char d:5; }; struct S s{0}; s.a10; s.b12; s.c6; s.d8; 可以看到内存中确实是我们所推理的那样存放22 06 08  2联合体 2.1联合体的声明 联合体也和结构体一样由一个或者多个元素组成联合体的特点是所有成员共用一块内存空间。所以联合体也叫共用体  union Un {         char a;         int i; }; int main() {         union Un un{0};//联合变量定义         printf“%d”,sizeof(un));//4    } 2.2联合体的特点 为什么上述声明的联合体大小是4个字节上面讲到联合体成员是共用一块内存空间的这样就使联合体的大小至少是最大成员的大小。 在描述不同的商品比如图书杯子衬衫时。每一种商品都有价格、库存量等但是他们又都有单独特有的属性页数、设计、尺寸。这个时候如果用结构体来描述就会十分复杂而用联合体就可以节省空间。 最后来利用联合体特有的特性来实现上一章的大小端判断 int judge() {         union  un         {                 int i;                 char a;//a占一个字节在联合体中与i的第一个字节共用一块内存空间         }         un.i1;         return un.a; } int main() {         if(judge())                 printf(小端”);         else                 printf(大端); }
http://www.zqtcl.cn/news/666643/

相关文章:

  • 有服务器自己怎么做网站百度广告电话号码是多少
  • 一个网站 两个数据库沈阳市住房和城乡建设厅网站
  • 重庆建站网站流程及费用制作网页界面工具
  • 设计师家园官网wordpress 4.9 优化
  • 主机屋空间安装织梦后台程序后怎么弄成淘宝客网站襄阳网站制作
  • 怎么建设分销模式手机网站宜昌做网站的公司
  • 网上商城网站设计网页设计作业欣赏
  • 育才网站建设网站访问慢原因
  • 网站建设方案 备案品牌网站推广软件
  • 桓台县建设局网站前端开发入门培训
  • 前端怎么在猪八戒网站接单做烟台网站开发技术
  • 济南烨铭网站建设做英文网站2014
  • 哪个餐饮店微网站做的有特色3d动画制作收费标准
  • h5旅游网站开发wordpress的站点地址如何配置
  • 网站正在维护中 模板招远网站建设
  • 福田欧曼银河报价seo文章是什么
  • 古云网站建设模具培训网站建设
  • 帮助企业做网站的销售卫浴洁具公司网站模板
  • 解释seo网站推广网站域名和空间费用
  • 深圳市珠宝网站建设手机网站框架
  • 晋城推广型网站开发dw做网站模板
  • 万网一个ip建立多个网站网页设计注册页面代码
  • 网站建设6000元地方门户网站有哪些
  • 十大SEO网站外链建设误区排版设计教程入门初学者
  • 网站基本维护网站设计软件下载
  • 网站开发的需求文档大型网站外链是怎么建设的
  • 网站建设实训心得与建议网站建设一般需要多少费用
  • 国内怎么打开WordPress网站wordpress制作api文件路径
  • 义乌网站开发公司wordpress段子模板
  • 国外有没有专门做靶材的网站做网站用哪个电脑