读书人

在VXWORKS上的C函数为什么不能用

发布时间: 2012-12-29 10:28:09 作者: rapoo

在VXWORKS下的C函数为什么不能用?
比如:
include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
char *string;
double value;
int dec, sign;
int ndig = 10;

clrscr();
value = 9.876;
string = ecvt(value, ndig, &dec, &sign);
printf("string = %s dec = %d \
sign = %d\n", string, dec, sign);

value = -123.45;
ndig= 15;
string = ecvt(value,ndig,&dec,&sign);
printf("string = %s dec = %d sign = %d\n",
string, dec, sign);


value = 0.6789e5; /* scientific
notation */
ndig = 5;
string = ecvt(value,ndig,&dec,&sign);
printf("string = %s dec = %d\
sign = %d\n", string, dec, sign);

return 0;
}


平台是移动奔腾,编译的时候 string = ecvt(value,ndig,&dec,&sign); 这一行说不能把INT转换成CHAR* ,可是ECVT返回的就是字符指针啊,不懂。
实在不行,改成 ecvt(value,ndig,&dec,&sign); 又告诉我隐式定义函数一样出错。
还有我用GETCH()函数告诉我没有定义流,
希望高手能解释一下,谢谢!!!



[解决办法]
ecvt是标准c的函数吗,好像是dos下的吧,为什么不用sprintf呢
[解决办法]
你的源码是从书上找的吧! clrscr(); 这是DOS下比较典型的函数,清屏!
[解决办法]

引用:
没错,上面的源码是书上的,我自己的用法和书上一样的,结果显示出错了。
如果DOS的调用都不能用了,各位大侠,那我们用C标准库够用吗?VXWORKS有没有自己的扩展库?还有拿个图形库GRAPHICS.H是不是也是DOS的?如果它也是非ANSI的,那么我们怎么使用图形模式绘图?

是的,vx当然有自己的库了,图形用windml库
[解决办法]
楼主可以先看看《tornado/vxworks入门与提高》里面有很多例子可以在模拟器上跑
用的就是标准c加vx的库,代码都是完整的

读书人网 >VxWorks

热点推荐