This question already has answers here:
How can one print a size_t variable portably using the printf family?
(12个答案)
Platform independent size_t Format specifiers in c?
(3个答案)
How do I print the size of int in C?
(3个答案)
2年前关闭。
我answered一个question,如果使用错误的格式说明符,则代码的行为是不确定的。
在该问题中,OP为
但是,我得到了一些评论,对于该代码,
那么,
(12个答案)
Platform independent size_t Format specifiers in c?
(3个答案)
How do I print the size of int in C?
(3个答案)
2年前关闭。
我answered一个question,如果使用错误的格式说明符,则代码的行为是不确定的。
在该问题中,OP为
%lu
运算符使用了sizeof
格式说明符。printf("%lu \n", sizeof(*"327"));
但是,我得到了一些评论,对于该代码,
%lu
不是UB。那么,
sizeof(*"327")
是否正确? 最佳答案
sizeof
运算符返回size_t
的类型。该类型的正确格式说明符是%zu
。
如果使用%lu
打印size_t
,则取决于size_t
是否大于long
,它可能行不通。如果size_t
较大,则您有未定义的行为,如果不是,则该行为定义良好。当然,您不能真正确定。
最好使用特定于该类型的正确格式说明符。
关于c - sizeof()运算符的格式说明符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46729692/
10-11 21:22