字符串中十六进制的困惑
我定义的一个字符串数组,保留一个泰文字典.
unsigned char wordptr[][20]={
"\x02 ",
"\x09 馗姥潮?,
"\x02¨",
"\x05¨∫?,
"\x05¨守?,
"\x06¨嗟纭",
"\x02‘",
"\x02\xBF\xA1",
"\x06\xBF\xC3\xCD\xC2\xB4\xEC",
"\x09\xBF\xC3\xD2\xB9\xAB\xD4\xCA\xB5\xEC",
"\x03\xBF\xC3\xD5",
"\x08颗袜霉",
"\x08颗厥帷缁"
}
编码通过后(ansi/iso standard c,编码工具是armcc),发现wordptr[11][0] = 0x0f ,明明我赋值\x08,怎么变了.后面wordptr[12]内容也是一样,少了一个字节,\x08\xbf合并成\x0f,(颗的第一个字节为bf)
后再看以上数组成员wordptr[11][0]以上都对了,但在wordptr[11][0]以后就都错了,编码器把\x08\xbf合并成\x0f, 晕晕
后来再想:为什么在"\x02‘",后没出错,而在"\x03\xBF\xC3\xD5",出错了,可能是内存对齐的问题,但不知道到底是出在那里.望各位大哥大姐提供点建议!谢谢!