При назначении от long до short LSB 2 байта равно 0, где, поскольку MSB заполняется значениями из значений алгоритма func1() из стека. Почему это происходит, почему компилятор пытается получить эти значения нежелательной почты в MSB 2 байта?Unsigned Short to Unsigned Длительное назначение
#include <stdio.h>
unsigned short func1(void); // NB: function prototype !
int main(void)
{
unsigned long int L = 0;
unsigned short K = 0;
L = func1();
printf("%lu", L); // prints junk values
K = L;
printf("%u", K); // prints 0
return 0;
}
unsigned short func1(void)
{
unsigned short i = 0;
// Algorithm Logic!!!
return i; // returns 0
}
Вам не хватает некоторых типов возврата и прототипов. func1() возвращает int, а не short. –
Вы скопировали и вставили фиксированный код, который я предоставил, но вы не сказали, относится ли это теперь к воспринимаемой проблеме? –