0
   char *pStrBuffer;

   unsigned char data;
   unsigned int Address;

   /* pStrBuffer reading from a file data in file of the form 
     WriteByte(0xDE04,0x20)
     WriteByte(0xFE08,0x50) ....

    */
   /* in a loop */
   sscanf(pStrBuffer,"%x%x",&Address,&data);

编译器是 Windows XP 中的 gnu gcc 4.5 但是为地址读取的值是 0xDE00 而不是 0xDE04 ?为什么会这样,尽管数据的值被正确读取。我也尝试分别使用 %lx 和 %hx 但没用

4

1 回答 1

3

要读取单个无符号字节,请使用%hhx修饰符。 %hx是一个unsigned short,%x是一个unsigned int,%lx是一个unsigned long,%llx是一个 `unsigned long long.

于 2012-05-14T17:20:01.703 回答