UL后缀vs uint32_t cast
发布时间:2020-12-14 04:25:02 所属栏目:Windows 来源:网络整理
导读:我必须定义这样的常量: #define MY_CONSTANT 0xBEEF 我想确定我的常量将被视为32位. 我可以使用这样的(uint32_t)演员: #define MY_CONSTANT (uint32_t)0xBEEF 或者像这样的UL后缀: #define MY_CONSTANT 0xBEEFUL 这两个版本完全相同吗? 我会说不,因为UL
我必须定义这样的常量:
#define MY_CONSTANT 0xBEEF 我想确定我的常量将被视为32位. 我可以使用这样的(uint32_t)演员: #define MY_CONSTANT (uint32_t)0xBEEF 或者像这样的UL后缀: #define MY_CONSTANT 0xBEEFUL 这两个版本完全相同吗? 我会说不,因为UL相当于unsigned long和unsigned long length可能取决于CPU. C99标准确保uint32_t整数是32位,但我不认为它确保UL后缀做同样的事情.
你是对的,因为你提到的原因,它们并不相同.不能保证uint32_t是unsigned long的别名.如有必要,在#defines中包含强制转换.
您应该使用括号,请参阅@Keith Thompson的评论,原因很简单;否则sizeof将无法正常工作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows-server-2003 – 如何最好地将服务器迁移到新硬件
- Vanilla Windows与Windows Server
- .net – 无法加载DLL’SqlServerSpatial.dll’
- 使用Qt 4 vs Qt 5开发适用于Windows和OS X的应用程序?
- xaml – 如何在Windows Apps中更改RelativePanel附加属性?
- windows – 远程运行调用“以管理员身份运行”的脚本
- windows-server-2003 – 确定谁以管理员权限运行?
- windows – 如何在Chrome中启用ActiveX?
- 在Windows上跟踪硬件或符号链接
- Windows Azure网站是32位还是64位?
推荐文章
站长推荐
- Windows Azure是否支持SPDY协议?
- 为Windows 7构建自定义凭据提供程序
- windows-7 – Cisco Anyconnect:禁用远程桌面的
- windows 简单实用Elasticsearch
- 如果已登录到另一个Microsoft帐户,则使用WAAD作为
- Windows Server 2016-Wbadmin命令行备份域控制器
- 在Windows中调试Go(golang)代码
- windows-server-2008 – Server 2008 R2到Server
- .net – Windows体系结构中的CLR,Win32,WinRT
- windows-server-2008 – 如何监控Dell服务器上的
热点阅读