将 64 位常量分配为
int64_t foo = 0x1234LL;
不可移植,因为long long
不一定int64_t
. 这篇文章哪个初始化程序适合 int64_t?讨论了INT64_C()
宏 from的使用<stdint.h>
,但是否也可以使用static_cast
as
int64_t foo = static_cast<int64_t>(0x1234);
?
我应该更喜欢哪一个,为什么,或者它们都运作良好?
我在互联网和 SO 上进行了搜索,但没有找到任何static_cast
探索该选项的地方。我还进行了测试,sizeof()
以确认它在简单的情况下有效。