ubuntu 64 位是 LP64 吗?
ubuntu 64-bit is LP64?
我知道有几种 64 位模型:LP64、ILP64、LLP64。
我想问一下它们中的哪一个与 ubuntu 64 位(以及此 ubuntu 中使用的 gcc)一起使用?
答案是Ubuntu64位提供I32LP64编译
您可以使用以下代码自行检测:
$ cat t.c
#include <stdio.h>
#include <limits.h>
int main(void) {
printf("%zu %zu %zu\n",
CHAR_BIT*sizeof(int),
CHAR_BIT*sizeof(long),
CHAR_BIT*sizeof(void*));
}
$ gcc t.c && ./a.out
32 64 64
我知道有几种 64 位模型:LP64、ILP64、LLP64。 我想问一下它们中的哪一个与 ubuntu 64 位(以及此 ubuntu 中使用的 gcc)一起使用?
答案是Ubuntu64位提供I32LP64编译
您可以使用以下代码自行检测:
$ cat t.c
#include <stdio.h>
#include <limits.h>
int main(void) {
printf("%zu %zu %zu\n",
CHAR_BIT*sizeof(int),
CHAR_BIT*sizeof(long),
CHAR_BIT*sizeof(void*));
}
$ gcc t.c && ./a.out
32 64 64