Size_t
定义为unsigned
整数,但是它的大小取决于是在32位还是64位的机器上。如何正确和便携地打印出size_t
?
发布于 2018-05-11 13:19:46
尝试使用%zu
格式字符串
size_t val = get_the_value();
printf("%zu",val);
z部分是一个长度说明符,表示参数的大小。
发布于 2018-05-11 14:58:32
上面有一个C+标记,所以cout <<
是另一个可能的答案。
令人惊讶的是,在C90的所有版本中,都很难正确地实现这一点。unsigned long
应该有效,但这在C99中可能不起作用,C99解决方案在C90中也不一定有效。在1995年的更改中引入了可靠区分C90和C99的能力(指定了C90和C99的允许值)。__STDC__
).我不认为有一种完全可移植的方法可以适用于C90、C99和C+,尽管有针对其中任何一个的解决方案。
https://stackoverflow.com/questions/-100004068
复制相似问题