Почему порядок строк так важен?
Только приступил к изучению C (опыт в программировании мал), попалась такая задача: Необходимо переключить 3 и 0 биты переменной bits. Результат сохраните в байтовой беззнаковой переменной res и выведите ее значение в консоль в виде целого десятичного числа. Моя программа выглядит таким образом:
#include <stdio.h>
int main(void)
{
unsigned char bits;
unsigned char mask = 0b1001;
scanf("%hhd", &bits);
printf("%u", mask ^ bits);
return 0;
}
Но по сути всегда выводится значение bits
, а не mask ^ bits
. Но если строчку scanf("%hhd", &bits);
поменять местами с unsigned char mask = 0b1001;
, то все будет работать. Либо я чего-то не понимаю, либо что-то не так с компилятором (хотя трудно себе это представить). Кстати, стандарт языка C99, и компилятор MinGW32. Вдруг, это важно.. Кстати, на самом Stepik`е все работает во обеих вариациях.