首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

函数返回值为enum的有关问题~ 为什么结果不对

2012-02-28 
函数返回值为enum的问题~ 为什么结果不对?enumEndian_type{NO_ENDIAN0,RESERVED,ENDIAN_SRC,ENDIAN_DST}

函数返回值为enum的问题~ 为什么结果不对?
enum   Endian_type   {   NO_ENDIAN=0,   RESERVED,   ENDIAN_SRC,   ENDIAN_DST   };

Endian_type   get_Endian(UINT32   channel){   return   Endian_type[((   gdma_ctrl_reg[channel]   > >   21)   &   0x03)];}//可能有问题!

调用get_Endian(i)不是想要的值   肯定这样有问题

下面这个一样不行
Endian_type   get_Endian(UINT32   channel){   return   static_cast <Endian_type> ((   gdma_ctrl_reg[channel]   > >   21)   &   0x03);}//可能有问题!


[解决办法]
和enum没有关系。返回enum等同于返回int。
[解决办法]
直接返回 int 值 ~~
[解决办法]
Endian_type[(( gdma_ctrl_reg[channel] > > 21) & 0x03)]

这样可以么?
[解决办法]
( gdma_ctrl_reg[channel] > > 21) & 0x03

把这个值返回就是了 ~

热点排行