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 conversions和6.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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)