我可以在临时结果中溢出uint32_t吗?
基本上当我这样做时,32位系统会发生什么:
uint32_t test (void) { uint32_t myInt; myInt = ((0xFFFFFFFF * 0xFFFFFFFF) % 256u ); return myInt; }
我们假设int是32位.
> 0xFFFFFFFF将具有unsigned int类型.有一些特殊的规则可以解释这一点,但因为它是一个十六进制常量并且它不适合int,但它适合unsigned int,它最终会成为unsigned int. 但是,让我们假设int是64位. > 0xFFFFFFFF将具有int类型. 这将发生在所谓的“ILP64”或“SILP64”架构中.这些架构很少见,但确实存在.我们可以通过使用0xFFFFFFFFu来避免这些可移植性问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- .net – 如何为商业Windows应用程序创建测试环境?
- windows debug模式下的内存默认填充
- .net – 从开发角度来看:如何让老板们升级到Vista / Windo
- 批处理文件 – 如何在DOS和Windows CMD中抑制环境变量扩展?
- windows – 什么是base64明文用户名和密码?
- windows-server-2012 – Windows unattend.xml文件中“元素
- windows-server-2003 – IIS6多个SSL网站到一个HTTP网站?
- 2016424王启元 Exp2 后门原理与实践
- win10 ubuntu18双系统环境搭建
- Windows中的语言环境列表