C 我如何使atoi在我的广告项目中工作?
我想在我的程序中使用C 我如何使atoi在我的广告项目中工作?,c,arm,ctype,C,Arm,Ctype,我想在我的程序中使用atoi函数,但我发现它不起作用 #include <ctype.h> int value; value=atoi(buf); #包括 int值; 值=atoi(buf); char buf指向“1000”或类似值,以\0结尾。我查过了。 但该值的计算结果始终为零。我已经尝试了strtol(),但是我得到了相同的错误 我的ADS(ARM开发者套装)是v1.2(s3c2440)。我可以在armlib路径(c_t_xx.l)中找到lib 我使用axddebug模式
atoi
函数,但我发现它不起作用
#include <ctype.h>
int value;
value=atoi(buf);
#包括
int值;
值=atoi(buf);
char buf
指向“1000”或类似值,以\0
结尾。我查过了。
但该值的计算结果始终为零。我已经尝试了strtol(),但是我得到了相同的错误
axd
debug模式,以便跟踪代码。我找到了“bl
__rt_ctype_table“
,因此我认为asm代码链接正确请给出解决此问题的建议。ARM可能在字符串函数方面有问题,您没有提到它是否返回值并且它不正确(我听说这是一个bug,最好您自己编写函数),或者根本没有值。
无论如何,看看arm的文章,我认为这是解决方案-以下代码应该可以工作
#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
#包括
#包括
int main()
{
int i;
字符buff[5]=“1000\0”;
i=atoi(浅黄色);
printf(“i=%d\n”,i);
返回0;
}
#/a.out
#i=1000
那么,您的缓冲区不包含1000。atio
在stdlib.h
中,您能给我们演示一下吗?buf首先来自哪里?如果你声明了它,那么缓冲区中的值就是随机的。谢谢。buf没有错误(在axd中调试)。因为没有操作系统工作(在ucOSII上),演示不那么容易。也许那些使用广告并为arm(S3C2440)编写代码的人会提供有用的帮助。顺便说一句,strtol(buf,NULL,10)也有同样的错误。是的,这段代码在任何linux平台上都可以正常工作,但在我的arm平台(usOSII)上,以ads作为编译器。它不再工作了。请确保您已经使用了以下[link]();