Объявление 64-битных переменных в C

У меня есть вопрос.

uint64_t var = 1; // this is 000000...00001 right?

И в моем коде это работает:

var ^ (1 << 43)

Но откуда он знает, что 1 должен быть в 64 битах? Разве я не должен написать это вместо этого?

var ^ ( (uint64_t) 1 << 43 )

Ответы на вопрос(5)

Ваш ответ на вопрос