问题:
我使用的是BF561,使用异步存储的端口来调LCD。在deal.txt记事本里放了512个数用于连点划线。原来运行在uclinux下的程序中有下边这句:
char path[16] = "/mnt/deal.txt";
在裸机下,我把程序修改为:
char path[16] = "F:\\deal.txt" ;
编译的时候出错,显示cc0144: error: a value of type "char [39]" cannot be used to initialize an entity of type "char [16]"。
把path[16]改为39或更大的数,则编译、运行成功。
我不太明白,明明这个文件夹里放了512个数,为什么path这个数组只有39个元素?
答:path里面放的不是你deal.txt文件的内容,而是"F:\\deal.txt" ,另外你检查一下其他地方有没有定义char path[39]
问:多谢!其他地方没有定义char path[39]。
char是八位有符号二进制数,char path[39]就意味着"F:\\deal.txt"这个字符数组里有39个这样的数。但是那个deal.txt文件里存放的数明显要多很多呀,而且每个数的数值都比较大,比如25631。难道是这其中有什么转换机制吗?
答:如果你要读取deal.txt内部数据,需要使用文件系统,用fopen 和fread读取。不能直接赋给数组
任何问题ADI DSP的技术及商务问题,均可联系OP的QQ:5516164,邮箱:sale@openadsp.com
|