最近换了个搞服务器的工作。但是有些地方不太明白,想请教一下。
主要有2个
1,我发现很多时候的值不会超过255,于是我把原本设计为int的类型改为了unsigned char 来存放,在服务器上这样用可以吗,(我是说存放的空间变小了,对效率的影响大吗,不考虑值的扩展性因为肯定过不了255);
2. 很多时候可以用位域来判断是否,和bool值谁更好。
本人菜鸟,就这两个小问题,请个位高手指教下,谢谢。

解决方案 »

  1.   

    int->unsigned char 可以
    能节省就尽量节省使用unsigned char 或者 bool ,而不是使用位域
    使用位域需要好多个CPU周期,而unsigned char 或者BOOL少的多
    当然如果你是用在报头的设计上,那么请使用位域,这里空间是第一位,CPU开销是第二位
      

  2.   

    这个要具体问题具体分析,有些地方可能是自动内存对齐的,你写了个char,实际占用的可能是4个字节。
      

  3.   

    我想问下。 位域做bool怎么会多出好多个cpu周期, 一样的是对位操作,我这位域是将一个位用做bool在CPU处理的时候也是and或or运算 并不存在像多个位组合在一起出现相加的话要取出来,然后再存放进去那样的情况。
      

  4.   

    是cpu位倍数cpu的速度会比较快。