汉字直接参与运算的问题本人用WCHAR声明了一个字符(zi),用它来memcpy字符串里的汉字,然后参与运算,结果发现用WCHAR声明的字符(zi)的高字节和低字节是互换的,于是,我原先 zi >最小的汉字和 zi < 最大的汉字的运算失效了。 那么,能不能把 zi 的高字节和低字节互换回来,这样会不会有新的问题?
我的想法: 将“zi >最小的汉字和 zi < 最大的汉字”这个规则改一下。最好封装为一个函数,这样便于更改。
原来的 zi 的字节为 ac,最大的字为 ae,最小的字为 ab ,当用 WCHAR 声明 zi 后,zi 的高低字节互换,成了 ca,那么,if ( ca < ae && ca > ab ) 的结果是假,与原来的真的结果相反了。如果我用 zi 的高低字节互换成 原来的 ac ,再去比较,那么,会不会有意想不到的后果呢?
将“zi >最小的汉字和 zi < 最大的汉字”这个规则改一下。最好封装为一个函数,这样便于更改。
比较的时候用 swapzi(zi) > swapzi(最小的字)