Was `long` guaranteed to be as wide as `size_t`
问题 When looking for evidence of unsigned long being enough to hold size_t for the purpose of being argument to printf I ran into two fact(oid)s. First there's this answer stating that long is indeed not guaranteed to be large enough for size_t . On the other hand I saw this answer suggesting to use printf("%lu", (unsigned long)x) in pre C99, x being of size_t . So the question is could you assume or were you guaranteed that long were enough to hold size_t in pre C99 . The other question is