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 ですが、アドレスの読み取り値は 0xDE04 ではなく 0xDE00 ですか? データの値は正しく読み取られますが、なぜそうなのですか。また、それぞれ %lx と %hx を使用しようとしましたが、役に立ちませんでした

4

1 に答える 1

3

単一の符号なしバイトを読み取るには、%hhx修飾子を使用します。 %hxunsigned short、、、および`unsigned long long 用%xです。unsigned int%lxunsigned long%llx

于 2012-05-14T17:20:01.703 に答える