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