跳转到内容
彼岸论坛
欢迎抵达彼岸 彼岸花开 此处谁在 -彼岸论坛

[编程] C++的 long 是一个很尴尬的存在。


小天管理

已推荐帖子

long 在 32 位编译器里,是 32 位整型。在 64 位编译器里,是 64 位整型。

为了避免代码歧义,我一般会用 long long 来表示 64 位整型,这样不管 32 位还是 64 位编译,都能保持一致性。

但是,官方有一个 INT64_C 的宏,是下面这样定义的。也就是官方推荐 64 位编译器,优先选用 long 为 64 位整型。


#if defined(__LP64__)
#define INT64_C(c) c ## L
#else
#define INT64_C(c) c ## LL
#endif


这就很尴尬了,我代码里全部都是 long long ,和 long 并不兼容,属于两个不同类型,陷入了深深的沉思。最后决定,我不用官方的 INT64_C 宏了,属于把人带偏的节奏。
意见的链接
分享到其他网站

加入讨论

您现在可以发表并稍后注册. 如果您是会员,请现在登录来参与讨论.

游客
回复主题...

×   粘贴为富文本.   粘贴为纯文本来代替

  只允许使用75个表情符号.

×   您的链接已自动嵌入.   显示为链接来代替

×   您之前的内容已恢复.   清除编辑器

×   您无法直接粘贴图片.要从网址上传或插入图片.

  • 游客注册

    游客注册

  • 会员

    没有会员可显示

  • 最新的状态更新

    没有最新的状态更新
  • 最近查看

    • 没有会员查看此页面.
×
×
  • 创建新的...