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