我正在尝试用 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”?为什么?