在C中什么时候发生类型转换
我有以下问题:例如,我给出了代码:在C中什么时候发生类型转换,c,type-conversion,integer-promotion,C,Type Conversion,Integer Promotion,我有以下问题:例如,我给出了代码: uint8_t a = 0x30; uint16_t b = a << 8; uint8\u t a=0x30; uint16_t b=a在表达式树中,C中的表达式计算是自底向上的,也就是说,在您的案例中,C中的表达式计算是自底向上的,也就是说在您的案例中a C!=C++。首先决定你实际使用的语言,只使用那种语言。C还是C++?它们是两种完全不同的语言,尤其是在语义方面。这种行为是否取决于它的c语言或c++语言。即使没有,选择一种语言也会更容易找
uint8_t a = 0x30;
uint16_t b = a << 8;
uint8\u t a=0x30;
uint16_t b=a在表达式树中,C中的表达式计算是自底向上的,也就是说,在您的案例中,C中的表达式计算是自底向上的,也就是说在您的案例中a C!=C++。首先决定你实际使用的语言,只使用那种语言。C还是C++?它们是两种完全不同的语言,尤其是在语义方面。这种行为是否取决于它的c语言或c++语言。即使没有,选择一种语言也会更容易找到重复的或指向引用的链接。现在,当你选择一种语言时,我推荐你,特别是关于.C!=C++。首先决定你实际使用的语言,只使用那种语言。C还是C++?它们是两种完全不同的语言,尤其是在语义方面。这种行为是否取决于它的c语言或c++语言。即使不是这样,选择一种语言也会更容易找到重复的或指向引用的链接。现在,当你选择一种语言时,我推荐你,尤其是关于的那一节。因此,在任何操作数比int更窄的算术运算中,它在执行操作之前被提升为int?如果int是16位,a是0xF0会发生什么?在哪一点会出错?左移位会将1移到符号位,这是不允许的。因此,在任何操作数比int窄的算术运算中,在执行该运算之前,它会被提升到int?如果int为16位,a为0xF0,会发生什么情况?在哪一点会出错?左移位会将1移位到符号位,这是不允许的。