C语言数据转换与UNIX日期时间处理
1. 整数转换函数的溢出/下溢测试
在C语言中,进行字符串到整数的转换时,需要考虑溢出和下溢的情况。下面将介绍几个常用的转换函数及其溢出/下溢测试方法。
1.1 strtol(3)函数的溢出/下溢测试
-
测试步骤 :
- 将变量
errno清零。 - 调用
strtol(3)函数进行转换。 - 如果返回值不是
LONG_MAX(且不是LONG_MIN),则没有发生溢出,测试结束;否则,进入步骤4。 - 测试
errno的值。如果它仍然是步骤1中清零后的零值,则转换过程中没有发生溢出,返回值真正代表了转换后的输入值。 - 如果
errno的值是ERANGE,则转换过程中发生了溢出,返回值LONG_MAX不能代表输入值。
- 将变量
-
代码示例 :
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include &
超级会员免费看
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



