0

嗨,我有一个使用 ndk 的 android 项目

有定义的 ac 函数 atof()

static __inline__ double atof(const char *nptr)
{
    return (strtod(nptr, NULL));
}

但不知何故,它总是导致 0.0

error_printf("found %s parsed %d \n",nextArg, atof(nextArg));
found 44 parsed 0

任何想法为什么?

参数 nextArg 似乎不是问题

error_printf("found %s parsed %d \n","123", atof("123"));
found 123 parsed 0 
4

1 回答 1

2

将打印消息从%d需要 32 位整数更改为%f需要 64 位浮点值。

您的打印语句显示其参数的低 32 位,由于您选择的测试输入,这些位恰好全为零。如果你打印atof(123.3)你会看到一个非零值%d

而且,当然,确保您必须确保您拥有和#include <stdlib.h>的原型。atof()strtod()

于 2014-03-23T15:54:40.137 回答