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

北京品牌网站建设公司哪家好用织梦同时做两个网站

北京品牌网站建设公司哪家好,用织梦同时做两个网站,温州网络公司哪家最好,wordpress微信内发链接显示简介union主要是共享内存#xff0c;分配内存以其最大的结构或对象为大小#xff0c;即sizeof最大的。在C/C程序的编写中#xff0c;当多个基本数据类型或复合数据结构要占用同一片内存时#xff0c;我们要使用联合体#xff1b;当多种类型#xff0c;多个对象#xff0c;多…union主要是共享内存分配内存以其最大的结构或对象为大小即sizeof最大的。在C/C程序的编写中当多个基本数据类型或复合数据结构要占用同一片内存时我们要使用联合体当多种类型多个对象多个事物只取其一时我们姑且通俗地称其为“n 选1”我们也可以使用联合体来发挥其长处。一下转载自网站 在C/C程序的编写中当多个基本数据类型或复合数据结构要占用同一片内存时我们要使用联合体当多种类型多个对象多个事物只取其一时我们姑且通俗地称其为“n 选1”我们也 可以使用联合体来发挥其长处。首先看一段代码union myun { struct { int x; int y; int z; }u; int k; }a; int main() { a.u.x 4; a.u.y 5; a.u.z 6; a.k 0; printf(%d %d %d\n,a.u.x,a.u.y,a.u.z); return 0; }union类型是共享内存的以size最大的结构作为自己的大小这样的话myun这个结构就包含u这个结构体而大小也等于u这个结构体 的大小在内存中的排列为声明的顺序x,y,z从低到高然后赋值的时候在内存中就是x的位置放置4y的位置放置5z的位置放置6现在对k赋 值对k的赋值因为是union要共享内存所以从union的首地址开始放置首地址开始的位置其实是x的位置这样原来内存中x的位置就被k所赋的 值代替了就变为0了这个时候要进行打印就直接看内存里就行了x的位置也就是k的位置是0而yz的位置的值没有改变所以应该是0,5,6再看两个试题试题一编写一段程序判断系统中的CPU 是Little endian 还是Big endian 模式 分析 作 为一个计算机相关专业的人我们应该在计算机组成中都学习过什么叫Little endian 和Big endian。Little endian 和Big endian 是CPU 存放数据的两种不同顺序。对于整型、长整型等数据类型Big endian 认为第一个字节是最高位字节按照从低地址到高地址的顺序存放数据的高位字节到低位字节而Little endian 则相反它认为第一个字节是最低位字节按照从低地址到高地址的顺序存放数据的低位字节到高位字节。 例如假设从内存地址0x0000 开始有以下数据 0x12 0x34 0xab 0xcd 如 果我们去读取一个地址为0x0000 的四个字节变量若字节序为big-endian则读出结果为0x1234abcd若字节序位little-endian则读出结果为 0xcdab3412。如果我们将0x1234abcd 写入到以0x0000 开始的内存中则Little endian 和Big endian 模式的存放结果如下 地址 0x0000 0x0001 0x0002 0x0003 big-endian 0x12 0x34 0xab 0xcd little-endian 0xcd 0xab 0x34 0x12 一般来说x86 系列CPU 都是little-endian 的字节序PowerPC 通常是Big endian还有的CPU 能通过跳线来设置CPU 工作于Little endian 还是Big endian 模式。 解答 显然解答这个问题的方法只能是将一个字节CHAR/BYTE 类型的数据和一个整型数据存放于同样的内存 开始地址通过读取整型数据分析CHAR/BYTE 数据在整型数据的高位还是低位来判断CPU 工作于Little endian 还是Big endian 模式。得出如下的答案 typedef unsigned char BYTE; int main(int argc, char* argv[]) { unsigned int num,*p; p num; num 0; *(BYTE *)p 0xff; if(num 0xff) { printf(The endian of cpu is little\n); } else //num 0xff000000 { printf(The endian of cpu is big\n); } return 0; } 除了上述方法(通过指针类型强制转换并对整型数据首字节赋值判断该赋值赋给了高位还是低位)外还有没 有更好的办法呢我们知道union 的成员本身就被存放在相同的内存空间共享内存正是union 发挥作用、做贡献的去处因此我们可以将一个CHAR/BYTE 数据和一个整型数据同时作为一个union 的成员得出 如下答案 int checkCPU() { { union w { int a; char b; } c; c.a 1; return (c.b 1); } } 实现同样的功能我们来看看Linux 操作系统中相关的源代码是怎么做的 static union { char c[4]; unsigned long mylong; } endian_test {{ l, ?, ?, b } }; #define ENDIANNESS ((char)endian_test.mylong) Linux 的内核作者们仅仅用一个union 变量和一个简单的宏定义就实现了一大段代码同样的功能由以上一段代码我们可以深刻领会到Linux 源代码的精妙之处(如果ENDIANNESS’l’表示系统为little endian, 为’b’表示big endian ) 试题二假设网络节点A 和网络节点B 中的通信协议涉及四类报文报文格式为“报文类型字段报文内容的结构体”四个报文内容的结构体类型分别为STRUCTTYPE1~ STRUCTTYPE4请编写程序以最简单的方式组 织一个统一的报文数据结构。 分析 报文的格式为“报文类型报文内容的结构体”在真实的通信中每次只能发四类报文中的一种我们可以将四类报文的结构体组织为一个union共享一段内存但每次有效的只是一种然后和报文类型字段统一组织成一个报文数据结构。 解答 根据上述分析我们很自然地得出如下答案 typedef unsigned char BYTE; //报文内容联合体 typedef union tagPacketContent { STRUCTTYPE1 pkt1; STRUCTTYPE2 pkt2; STRUCTTYPE3 pkt1; STRUCTTYPE4 pkt2; }PacketContent; //统一的报文数据结构 typedef struct tagPacket { BYTE pktType; PacketContent pktContent; }Packet;
http://www.pierceye.com/news/209520/

相关文章:

  • 网站建设需要具备哪些学编程多少钱学费
  • 建设工程许可证在那个网站办金融行业网站制作
  • 邢台专业做网站价格信息流广告是什么
  • 网站开发的母的目的和意义.建设购物平台网站
  • 立方米网站建设做淘宝客网站用什么程序好
  • 怎样做网站挣钱建筑资料软件
  • 涿州建设局网站苏州市高新区建设局网站
  • 个人soho要怎么做企业网站成都包装设计公司
  • 网站开发 chrome浏览器崩溃ruhe用dw做网站
  • 全屏网站 图片优化个人网站cms系统
  • 做我女朋友程序网站邵东做网站
  • 建设网站如何挂到网上wordpress首页添加幻灯
  • 汕头正规网站建设模板总部城乡建设网站 资料员
  • vs 2017c 怎么建设网站网站建设的数字化和互联网化
  • 南昌网站设计公司海南营销网站建设
  • 购物网站素材个人搭建网站教程
  • 青岛网站建设哪里好模板建站服务公司
  • 青色网站欣赏wordpress中文购物
  • 建站培训全国住房与城乡建设部网站
  • 唐山网站建设方案策划沧州网站建设联系电话
  • 网页制作和网站开发实验报告logo设计品牌
  • 摄影后期教程网站百度指数1000搜索量有多少
  • wp网站建设模板什么是网站的原型
  • 园林绿化网站建设上海著名室内设计公司
  • 大连市住房与城乡建设部网站公司要制作网站
  • 郑州做网站七彩科技企业网站做的漂亮
  • 如何用ps做网站页面设计企业网站备案价格
  • 禅城网站建设价格青岛企业自助建站系统
  • 平阳住房和城乡建设厅网站建设银行龙卡信用卡在境外网站支付
  • 关于网站开发的论文软件开发合同模板免费