【发布时间】:2013-04-09 17:41:03
【问题描述】:
我正在尝试用 C++ 为 Windows(MinGW) 和 Linux(g++) 编写跨平台代码。我习惯于在 Linux 中将 64 位整数定义为“long”,但是当我转到 MinGW 时,sizeof(long) 返回 4 个字节。然后我发现我可以在 MinGW 中使用“long long”或“__INT64”来定义 64 位整数。我有两个问题:
1.-为 Windows 和 Linux 定义 64 位整数的最便携方法是什么?我目前正在使用 #ifdef,但我不知道这是否是最好的方法这样做:
#ifdef LINUX
#define INT64 long
#elif WIN32
#define INT64 long long
#endif
2.-我应该在 MinGW 中使用“long long”还是“__INT64”?为什么?
【问题讨论】:
-
我觉得你想说的是
long long而不是double double -
@drahnr 我的错,我编辑了帖子
标签: c++ cross-platform mingw long-integer int64