我有一个关于C语言标准的数据types提升规则的查询。 C99说: C整数升级还要求“如果int可以表示原始types的所有值,则该值将被转换为int;否则,将被转换为unsigned int。 我的问题是在C语言expression式的情况下, unsigned int和signed int是否存在,哪种types将被提升为什么types? 例如, int不能表示所有unsigned int值(大于MAX_INT值),而unsigned int不能表示-ve值,那么在这种情况下什么types被提升为什么?
从我从这个问题得到的答案看来,C ++inheritance了从C执行算术运算时将short转换为int这一要求。请问您为什么首先在C中引入了这个大脑? 为什么不把这些操作做得short呢? 例如( 从dyp的意见中得到的build议 ): short s = 1, t = 2 ; auto x = s + t ; x将具有inttypes。