gpt4 book ai didi

c - 表达式 : addition of two value of type unsigned char 的确切类型是什么

转载 作者:太空宇宙 更新时间:2023-11-03 23:33:09 27 4
gpt4 key购买 nike

unsigned char c0=255,c1=1;
char c2=c0+c1; //(1)

没有任何警告(/W4),c2为0

int i=c0+c1;    //(2)

没有任何警告(/W4),i为256

expression(c0+c1) 的类型是什么?如果是 unsigned char,为什么不是 (2) 中的 0。如果是 int,为什么 (1) 中没有警告。

这似乎与“整数提升”有关。

求助!!!

最佳答案

unsigned char c0=255,c1=1;
char c2=c0+c1;

c0 + c1int 类型,计算结果为 256。此 int 值在分配给 c2 时会转换为 char。不需要警告,因为您始终可以分配任何不同算术类型的操作数。 (从技术上讲,它是一个初始化,但相同的类型和转换约束适用于赋值和初始化)。

int i=c0+c1;

c0 + c1 仍然是 int 类型并且在赋值期间没有发生转换。

关于c - 表达式 : addition of two value of type unsigned char 的确切类型是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10504590/

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