当寻找unsigned long足以为size_t争论目的而持有的证据时,printf我遇到了两个事实(oid).
首先,这个答案说明long确实不能保证足够大size_t.另一方面,我看到这个答案暗示printf("%lu", (unsigned long)x)在C99之前使用,x是的size_t.
所以问题是你可以假设或者你保证在C99之前long就足够了.另一个问题是,是否存在适合任何其他标准化整数类型的保证(除了明显的例外情况,例如,等等).size_tsize_tssize_tptrdiff_t