我希望能够在我的项目中使用大的正整数(8 个字节),即使 sizeof(unsigned long) 在我的系统中产生 8,我读到在大多数系统中 unsigned long 只有 4 个字节,我决定给 unsigned long很长一段时间,因为它保证至少有 8 个字节。
不过,我使用它的次数越多,我发现它也不是超级便携,例如在某些系统中(取决于编译器)printf 使用 %llu 对其进行格式化,在某些系统中使用 %lld 对其进行格式化。
我的代码只能在 64 位 debian 机器上运行,其中 unsigned long 将是 8 个字节。便携性不是一个大问题。在这种情况下,使用 unsigned long long 而不是 unsigned long 是否有点矫枉过正,使用 unsigned long long 而不是 unsigned long 还有其他好处吗?