如何在我的ADS项目中使atoi工作?

时间:2012-07-17 08:32:40

标签: c arm ctype

我想在我的程序中使用atoi函数,但我发现它不起作用。

#include <ctype.h>
int value;
value=atoi(buf);

char buf指向“1000”或类似内容,由\0终止。我检查了一下。 但是值总是评估为零。我试过了strtol(),但我得到了同样的错误。

  1. 我的ADS(ARM Developer Suit)是v1.2(s3c2440)。我可以在armlib路径(c_t_xx.l)中找到lib。
  2. 我使用axd调试模式,因此我可以跟踪我的代码。我发现"bl
    __rt_ctype_table"
    ,所以我认为asm代码链接正确。
  3. 请提供任何解决此问题的建议。

2 个答案:

答案 0 :(得分:1)

ARM可能有字符串函数的问题,你没有提到它是否返回一个值而且它是不正确的(我听说这是一个错误,你应该自己编写这个函数更好)或者根本没有任何价值。 无论如何看看有关它的手臂文章,我认为这是解决方案 - ARM article about string functions

答案 1 :(得分:0)

以下代码应该有效,

#include <stdio.h>
#include <stdlib.h>

int main()
{
        int i;
        char buff[5] = "1000\0";
        i=atoi(buff);
        printf("i=%d\n", i); 
        return 0;
}

#./a.out
#i=1000