Co standard C mówi o bitowaniu z większą liczbą bitów niż szerokość typu?

Rozważ następujący kod:

int i = 3 << 65;

Spodziewałbym się, że wynik będziei==0, jednak rzeczywisty wynik jesti==6. Przy niektórych testach znalazłem to z następującym kodem:

int i, s;
int a = i << s;
int b = i << (s & 31);

wartościa ib są zawsze takie same.

Czy standard C mówi coś o przesunięciu więcej niż 32 bitów (szerokość typuint) czy to jest nieokreślone zachowanie?

questionAnswers(1)

yourAnswerToTheQuestion