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

[编程] 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 宏了,属于把人带偏的节奏。
  • 游客注册

    游客注册

  • 会员

    没有会员可显示

  • 最新的状态更新

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

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