gpt4 book ai didi

c - 关于C中的整数提升,简短

转载 作者:行者123 更新时间:2023-11-30 17:31:37 26 4
gpt4 key购买 nike

void main(){
char c;
unsigned char uc;
unsigned short us1, us2;
short s1, s2;

c = 0xf0; uc = 0xf0;
us1 = c; us2 = uc;
printf("us1 = %x, \t us2 = %x\n", us1, us2);
s1 = c; s2 = uc;
printf("s1 = %x, \t s2 = %x\n", s1, s2);
}

结果:us1 = fff0,us2 = f0s1 = fffffff0,s2 = f0

s1为什么会这样?即使在 32 位中,short 的大小是 2 字节

最佳答案

这是因为在对 printf() 的变量参数调用中,short 被提升为 int

关于c - 关于C中的整数提升,简短,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24524322/

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