C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了我什么时候可以逃脱未通过签名声明int?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在C中,应该使用关键字signed来声明像-1这样的有符号整数,如下所示:

signed int i = -1;@H_944_8@ 
 

但是,我试过这个:@H_450_10@

signed int i = -2;
unsigned int i = -2;
int i = -2;@H_944_8@ 
 

并且所有3个案例用printf打印出-2(“%d”,i);.为什么?@H_450_10@

解决方法

由于您确认使用以下方式打印:

printf("%d",i);@H_944_8@ 
 

在未签名的情况下,这是undefined behavior.这将在@L_874_2@第7.19.6.1节中介绍fprintf函数,该函数还包含格式说明符的printf,它在第9段中说明:@H_450_10@

3.4.3节中定义的标准未定义行为如下:@H_450_10@

并进一步说明:@H_450_10@

最后,我们可以看到int与signed int相同.我们可以通过转到6.7.2类型说明符来看到这一点,在第2段中它将int分组如下:@H_450_10@

后来在第5段中说:@H_450_10@

大佬总结

以上是大佬教程为你收集整理的我什么时候可以逃脱未通过签名声明int?全部内容,希望文章能够帮你解决我什么时候可以逃脱未通过签名声明int?所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。