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

中山网站外包长沙seo男团

中山网站外包,长沙seo男团,用wordpress做个,做海外生意的网站通过预留字段来补齐内存分配。在实际项目中采用这种方法较多#xff0c;即保证了长度一致#xff0c;也为以后的扩展提供了容错的可能性。 unsafe struct StructSequential{public fixed float x[8];public fixed float y[8];public fixed float z[8];public fixed float ti…通过预留字段来补齐内存分配。在实际项目中采用这种方法较多即保证了长度一致也为以后的扩展提供了容错的可能性。 unsafe struct StructSequential{public fixed float x[8];public fixed float y[8];public fixed float z[8];public fixed float time[8];public fixed float radius[8];[MarshalAs(UnmanagedType.ByValArray, SizeConst 8)]public float[] reserved;}或者 public unsafe struct RTCPointQuery8{public fixed float x[8];public fixed float y[8];public fixed float z[8];public fixed float time[8];public fixed float radius[8];} Spanbyte stack stackalloc byte[sizeof(RTCPointQuery8) 32]; ref var test ref StackAllocAlignedRTCPointQuery8(stack, 32);static unsafe ref T StackAllocAlignedT(Spanbyte stack, nuint alignment) where T : unmanaged{return ref Unsafe.AsRefT((void*)(((nint)Unsafe.AsPointer(ref MemoryMarshal.GetReference(stack)) ((nint)alignment - 1)) ~(nint)(alignment - 1)));}C#内存对齐有三种方式分别是LayoutKind.Sequential、LayoutKind.Explicit、LayoutKind.Auto。 LayoutKind.Sequential 顺序对齐这是默认的内存对齐方式。会按照定义的struct中最大成员的长度进行内存对齐使用这种对齐方式容易造成内存空间浪费。这种方式常用于和非托管代码交互的情形CLR对struct的Layout处理方法与C/C中默认的处理方式相同都是按照结构体中占用空间最大的成员进行内存对齐。 [StructLayout(LayoutKind.Sequential)]struct StructSequential{public int A;public char B;}public static void Start(){StructSequential structSequential new StructSequential();Debug.WriteLine(A的长度为{0}, Marshal.SizeOf(structSequential.A));Debug.WriteLine(B的长度为{0}, Marshal.SizeOf(structSequential.B));Debug.WriteLine(structSequential的长度为{0}, Marshal.SizeOf(structSequential));} //A的长度为4 //B的长度为1 //structSequential的长度为8如果我们正在创建一个与非托管代码没有任何交互的struct类型我们也希望改变C#编译器的这种默认规则因此除了Sequential外还有Explicit和Auto。 除此之外你还可以通过设置StructLayout.Pack的值来达到内存大小分配一致但这种方法可能会因硬件性能约束或者其他的问题。 [StructLayout(LayoutKind.Sequential, Pack 32)]unsafe struct StructSequential{public fixed float x[8];public fixed float y[8];public fixed float z[8];public fixed float time[8];public fixed float radius[8];}LayoutKind.Explicit 精确对齐CLR会按照程序的设置对内存进行精确对齐。传入LayoutKind.Explicit可以使字段按照我们设定的FieldOffset设置字段排序方式CLR不对结构体进行内存对齐但是这种方式也是有缺陷的如果设置错误后果将比较严重。 [StructLayout(LayoutKind.Explicit)]struct StructSequential{[FieldOffset(0)]public int A;[FieldOffset(0)]public char B;}public static void Start(){StructSequential structSequential new StructSequential();Debug.WriteLine(A的长度为{0}, Marshal.SizeOf(structSequential.A));Debug.WriteLine(B的长度为{0}, Marshal.SizeOf(structSequential.B));Debug.WriteLine(structSequential的长度为{0}, Marshal.SizeOf(structSequential));structSequential.A 0;structSequential.B 0;Debug.WriteLine(structSequential.A: {0}, structSequential.A);Debug.WriteLine(structSequential.B: {0}, structSequential.B);} //A的长度为4 //B的长度为1 //structSequential的长度为4 //structSequential.A: 48 //structSequential.B: 0[FieldOffset(0)]表示内存不会有任何偏移这种情形下同一字节中存储了两条数据当其中一条改变时另一条也随之而改变。 LayoutKind.Auto 自动对齐。CLR会调整struct中成员的顺序来自动对齐使实例仅可能占用更少的内存同时会进行一定字节的内存对齐。 按照自己选择的最优方式对实例中的字段进行排列。 [StructLayout(LayoutKind.Auto)]struct StructSequential{public int A;public char B;}public static void Start(){StructSequential structSequential new StructSequential();Debug.WriteLine(A的长度为{0}, Marshal.SizeOf(structSequential.A));Debug.WriteLine(B的长度为{0}, Marshal.SizeOf(structSequential.B));//Debug.WriteLine(structSequential的长度为{0}, Marshal.SizeOf(structSequential));unsafe{Debug.WriteLine(structSequential的长度为{0}, sizeof(StructSequential));}structSequential.A 0;structSequential.B a;Debug.WriteLine(structSequential.A: {0}, structSequential.A);Debug.WriteLine(structSequential.B: {0}, structSequential.B);}
http://www.yutouwan.com/news/15659/

相关文章:

  • 北京天津网站设计制作多少钱wordpress判断首页选择不同模板
  • 制作简单门户网站步骤东莞制作网站建设的公司
  • 怎样创建个人的网站全县网站建设情况通报
  • 谷歌做英文网站山西招标
  • 哪个网站可以做1040杭州ppt设计公司
  • 中国建设银行车主卡网站备案后的域名改网站名
  • 网站建设协议书 保密条款给你一个网站你如何做优化
  • 近期舆情热点事件佛山市seo网站设计工具
  • win2008r2 iis配置网站广东做网站
  • 怎么做视频解析网站吗凡客诚品官网怎么登录
  • 做外贸用什么搜索网站网络营销的定义及其内容是什么
  • 网站建设的竞争对手的分析用wordpress建立电商网站
  • 网站建设案例市场wordpress字体抖动
  • 怎么做网站的防盗链柳州企业网站制作哪家好
  • 代刷网站只做软件吗手机百度下载免费安装
  • 西安营销网站郑州 网站建设公司
  • 一站式服务理念上传WordPress之后
  • 做网站用php吗企业网站建设需要资料
  • 做全景效果图的网站成都网页设计
  • 济南比较好的网站开发公司网络网站销售
  • 优秀网站设计参考做分类信息网站如何
  • 衡水如何做企业网站如何建设个人免费网站教程视频
  • 装修网网站建设张家港网站设计制作早晨设计
  • 入侵网站怎么做弹出上海网站制作优化公司
  • 吉林省建设信息网电话桔子seo查询
  • 一个空间如何做多个网站wordpress自定义搜索界面
  • 工程机械 网站模板seo如何优化网站步骤
  • 四川网站营销seo什么价格竞价单页网站制作
  • 网站建设动态实训报告网站三要素
  • 如何建网站做推广wordpress 作者名称