【发布时间】:2020-10-19 21:05:08
【问题描述】:
是否可以在 C99 中安全地将 size_t 类型的变量转换为 int 类型?
我很欣赏size_t 未签名,但如果我们需要int 表示,我们能做什么?
【问题讨论】:
-
没有安全的转换。只需使用投射。
-
您可以安全地将
size_t转换为int,方法是在转换之前检查其范围。如果它超出有效的int范围,则不能。 -
对 INT_MAX 进行测试,以确保在强制转换之前没有可能的有符号整数溢出。如果成功了,只需投射并运行它。
-
这能回答你的问题吗? How can I convert to size_t from int safely?