在neuron c中可以进行指针变量的类型转换吗? 点击:691 | 回复:7



冰雪tt

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 7回
  • 年度积分:0
  • 历史总积分:25
  • 注册:2004年11月06日
发表于:2005-05-07 17:21:00
楼主
在neuron c中可以进行指针变量的类型转换吗? 比如: s32_type *p; int b[4]; p=(s32_type *)b



zw76812

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 567回
  • 年度积分:0
  • 历史总积分:654
  • 注册:2001年7月18日
发表于:2005-05-07 21:55:00
1楼
强制类型转换。。 可以。。。。。。

zw76812

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 567回
  • 年度积分:0
  • 历史总积分:654
  • 注册:2001年7月18日
发表于:2005-05-08 09:55:00
2楼
你可以去查一下s32_type的类型定义。 typedef struct { unsigned int s32byte[4]; }s32_type; s32_type *p; p.s32byte[0]; 这样不是更好。。。。。

冰雪tt

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 7回
  • 年度积分:0
  • 历史总积分:25
  • 注册:2004年11月06日
发表于:2005-05-08 16:43:00
3楼
我用的是强制类型转换,不知neuron c是否支持。我的方案是这样的:神经元芯片从外部芯片的24位寄存器读入数据,把它存放在3个元素短整型数组,现在要用这个24位的数,所以要把这个3字节数组转换为32位的整型数。我先把3个元素的数组赋给一个4个元素的数组b[4],b[4]的最高位b[3]为0,然后再把b的地址强制转换给32为的指针p

zw76812

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 567回
  • 年度积分:0
  • 历史总积分:654
  • 注册:2001年7月18日
发表于:2005-05-09 16:10:00
4楼
这个肯定不行。。。 可以这样: unsigned int uintCommDataBuffer[4]; s32_type CommDataBuffer; ....赋值 uintCommDataBuffer[0] uintCommDataBuffer[1] uintCommDataBuffer[2] 符号状态 浮点状态放在uintCommDataBuffer[4] ..... ....解析 CommDataBuffer= uintCommDataBuffer[0]+ uintCommDataBuffer[1]+ uintCommDataBuffer[2]*(-1)*0.0001; .... CommDataBuffer就是您要的结果。 强制类型转换不会支持你这种的。。。。。 ;

冰雪tt

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 7回
  • 年度积分:0
  • 历史总积分:25
  • 注册:2004年11月06日
发表于:2005-05-09 18:09:00
5楼
您好! 非常感谢您的回复,解析部分不太明白。

冰雪tt

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 7回
  • 年度积分:0
  • 历史总积分:25
  • 注册:2004年11月06日
发表于:2005-05-09 18:09:00
6楼
您好! 非常感谢您的回复,解析部分不太明白。

zw76812

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 567回
  • 年度积分:0
  • 历史总积分:654
  • 注册:2001年7月18日
发表于:2005-05-09 18:21:00
7楼
看你的数据具体应用..... ....解析   CommDataBuffer=   uintCommDataBuffer[0]+   uintCommDataBuffer[1]*10+   uintCommDataBuffer[2]*100+ uintCommDataBuffer[3]*(-1)*0.0001;   .... 这就是一个例子而已....没有任何实际意义....

热门招聘
相关主题

官方公众号

智造工程师