Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1149268
  • 博文数量: 341
  • 博客积分: 12744
  • 博客等级: 上将
  • 技术积分: 4040
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-12 09:34
文章分类
文章存档

2014年(1)

2013年(10)

2012年(17)

2011年(63)

2010年(102)

2009年(107)

2008年(41)

分类: 嵌入式

2011-11-04 09:06:06

这里所指的将整数存入数组在c++中使用指针是这样实现的
  1. char buff[SIZE] = {0};
  2. char *p = buff;
  3. *(int *)p = 256;
上篇blog中提到了ruby的实现方式
下面是安全的C#的实现方式(C#在不安全的情况下也可以使用指针实现):

  1.         private void PutIntIntoBuffer(int num, byte[] buffer, int beginLen)
  2.         {
  3.             buffer[beginLen] = (byte)num;
  4.             buffer[beginLen + 1] = (byte)(num >> 8);
  5.             buffer[beginLen + 2] = (byte)(num >> 16);
  6.             buffer[beginLen + 3] = (byte)(num >> 24);
  7.         }

  8.         private void PutShortIntoBuffer(short num, byte[] buffer, int beginLen)
  9.         {
  10.             buffer[beginLen] = (byte)num;
  11.             buffer[beginLen + 1] = (byte)(num >> 8);
  12.         }


  13.         private int GetIntFromBuffer(byte[] buffer, int beginLen)
  14.         {
  15.             return (int)buffer[beginLen]
  16.                 | (int)buffer[beginLen+1] << 8
  17.                 | (int)buffer[beginLen+2] << 16
  18.                 | (int)buffer[beginLen+3] << 24;
  19.         }

  20.         private short GetShortFromBuffer(byte[] buffer, int beginLen)
  21.         {
  22.             return (short)((int)buffer[beginLen]
  23.                 | (int)buffer[beginLen+1] << 8);
  24.         }

阅读(1523) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~