gpt4 book ai didi

c - 无符号短整型到无符号长整型的赋值

转载 作者:行者123 更新时间:2023-11-30 21:15:43 25 4
gpt4 key购买 nike

从长到短分配时,LSB 2 字节为 0,其中 MSB 填充来自堆栈中的 func1() 算法值的值。为什么会发生这种情况,为什么编译器试图将这些垃圾值获取到 MSB 2 字节?

#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
}

最佳答案

unsigned long 的说明符是 luunsigned short 的意思是 hu。您未使用正确的说明符来调用 UB。

关于c - 无符号短整型到无符号长整型的赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2379986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com