What's the correct way to use printf to print a size_t?

前端 未结 3 1194
礼貌的吻别
礼貌的吻别 2020-11-22 00:18

Size_t is defined as an unsigned integer, but the size of it depends on whether you\'re on a 32 or 64-bit machine. What\'s the correct and portable

3条回答
  •  闹比i
    闹比i (楼主)
    2020-11-22 00:40

    There's a C++ tag on this, so cout << is another possible answer.

    This is surprisingly hard to get right in all versions of C. In C90, casting to unsigned long should work, but that may well not work in C99, and the C99 solutions won't necessarily work in C90. The ability to reliably distinguish between C90 and C99 was introduced in the 1995 changes (specifying the allowable values for __STDC__). I don't think there is a completely portable way that works for C90, C99, and C++, although there are solutions for any individual one of those.

提交回复
热议问题