atof()和atoi()函数使用问题

当我不包含stdlib.h的时候使用atof()函数不报错,可以运行,但是得到的是错误的结果

#include <stdio.h>
#include <string.h>
void main()
{
    char *a = "-100.23";
    float m = atof(a);
    printf("a = %.3f\n",m );
}

运行结果为a=0.000

但是用atoi()的时候就好像没问题

#include <stdio.h>
#include <string.h>
void main()
{
    char *a = "-100.23";
    int m = atoi(a);
    printf("a = %d\n",m );
}

运行结果为运行结果为a=-100。
包含了stdlib.h后就都是对的。
请问这是为什么?
是因为包含的 stdio.h 和 string.h 这两个包含文件间接地包含了这两个函数的声明吗,如果是这样的话为什么atof()不对而atoi()是对的呢?如果不是这样那是什么原因呢?
目前我还未找到原因,如果大家有知道的话请赐教。在此记录一下这个问题,如果解决了就会第一时间来更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值