onemoo
C99 标准只是规定 unsigned long long 要保证至少有 64 位。而 uintmax_t 是能实现的最宽的无符号整型。在我自己的编译环境下,unsigned long long 是 64 位长的,而 uintmax_t 能表示的也是 64 位的。你可以说在大多数的 64 位编译环境下,这两个类型可以表示的整型类型是相同的。但不能说它们是别名关系,毕竟 C 标准没这么说。真正的别名应该是像 int、signed、signed int 这三个之间的关系,它们确实是互为别名。