Я попытался прочитать несколько unsigned char
значений через scanf
и обнаружил странную ошибку.Во время второго вызова scanf
первая переменная unsigned char
переопределяется с 0. Но запись scanf(" %hhu", &second);
приведет к переопределению второй переменной unsigned char
.
#include <stdio.h>
int main(void){
unsigned char first, second;
printf("Type first unsigned char variable: ");
scanf("%hhu", &first);
printf("first = %hhu\n", first);
printf("Type second unsigned char variable: ");
scanf("%hhu", &second);
printf("first = %hhu\n", first);
printf("second = %hhu\n", second);
return 0;
}
Сведения о компиляторе:
gcc-core (gcc-5.1.0-tdm-1-core)
binutils (binutils-2.24-1-mingw32-bin)
mingwrt (mingwrt-3.20-2)-mingw32-dev, mingwrt-3.20-2-mingw32-dll)
w32api (w32api-3.17-2-mingw32-dev)
PS Использование %hu
или %u
не дает никакихразница.