汉字直接参与运算的问题本人用WCHAR声明了一个字符(zi),用它来memcpy字符串里的汉字,然后参与运算,结果发现用WCHAR声明的字符(zi)的高字节和低字节是互换的,于是,我原先 zi >最小的汉字和 zi < 最大的汉字的运算失效了。
那么,能不能把 zi 的高字节和低字节互换回来,这样会不会有新的问题?

解决方案 »

  1.   

    我的想法:
    将“zi >最小的汉字和 zi < 最大的汉字”这个规则改一下。最好封装为一个函数,这样便于更改。
      

  2.   

    原来的 zi 的字节为 ac,最大的字为 ae,最小的字为 ab ,当用 WCHAR 声明 zi 后,zi 的高低字节互换,成了 ca,那么,if ( ca < ae && ca > ab ) 的结果是假,与原来的真的结果相反了。如果我用 zi 的高低字节互换成 原来的 ac ,再去比较,那么,会不会有意想不到的后果呢?
      

  3.   

    定义一个函数 unsigned WCHAR swapzi(WCHAR zi) 用来把高低位颠倒一下
    比较的时候用 swapzi(zi) > swapzi(最小的字)