C11隐式转换字符,x%y

C11隐式转换字符,x%y,第1张

概述在C11中, char foo(char x, char y) { return x % y;} 是否在任何地方进行了隐式转换(例如,提升为int)? 通常的算术转换适用于%的 *** 作数,它们适用于其他乘法和加法运算符的 *** 作数(参见 6.5.5 Multiplicative operators). *** 作数被提升为int或unsigned int,具体取决于平台上char类型的范围(参见6.3 在C11中,

char foo(char x,char y) {    return x % y;}

是否在任何地方进行了隐式转换(例如,提升为int)?

解决方法 通常的算术转换适用于%的 *** 作数,它们适用于其他乘法和加法运算符的 *** 作数(参见 6.5.5 Multiplicative operators).

*** 作数被提升为int或unsigned int,具体取决于平台上char类型的范围(参见6.3.1.8 Usual arithmetic conversions6.3.1.1 Boolean,characters,and integers)

在大多数现实生活平台上, *** 作数将被提升为int,因为int的范围通常涵盖整个char范围.在一个或多或少的异国平台上,sizeof(char)== sizeof(int)和char是无符号类型(暗示char的范围不适合int的范围),它们将被提升为unsigned int.

总结

以上是内存溢出为你收集整理的C11隐式转换字符,x%y全部内容,希望文章能够帮你解决C11隐式转换字符,x%y所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1217751.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存