打印

编译器编译字符串中邪了?

[复制链接]
2228|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yuntian|  楼主 | 2008-3-12 21:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
先定义一个字符串,后面还有好多没一一列出,编译后居然在第110个下标处变成PORTBbits.RB5字符了,想了好多办法没搞定,倒塌了.

const rom uchar test_code[]=
{"0F BF 07 FC 07 FC 78 FF 77 FF 76 FF 75 FF 74 FF 73 FF 
08 08 3F F7 3F F7 49 FF 48 FF 47 FF 46 FF 45 FF 44 FF  
0E FF 2F FF 2F FF 72 FF 71 FF 70 FF 6F FF 6E FF 6D FF  
08 08 1F FF 1F FF 43 FF 42 FF 41 FF 40 FF 5F F8 5E FF   
0F BE 3F FF 3F FF 6C FF 6B FF 6A FF 69 FF 68 FF 67 FF  

08 08 07 FC 07 FC 5D FF 5C FF 5B FF 5A FF 59 FF 58 FF 
0D FF 3F FF 3F FF 66 FF 65 FF 64 FF 63 FF 62 FF 61 FF 
08 08 2F FF 2F FF 57 FF 56 FF 55 FF 54 FF 53 FF 52 FF 
0F BE 1F FF 1F FF 60 FF 7F FF 7E FF 7D FF 7C FF 7B FF 

08 08 07 FC 07 FC 51 FF 50 FF 4F F1 4E FF 4D FF 4C FF 
0C FF 3F FF 3F FF 7A FF 79 FF 78 FF 77 FF 76 FF 75 FF 
08 08 2F FF 2F FF 4B FF 4A FF 49 FF 48 FF 47 FF 46 FF 
0F BE 1F FF 1F FF 74 FF 73 FF 72 FF 71 FF 70 FF 6F FF 

08 08 07 FC 07 FC 45 FF 44 FF 43 FF 42 FF 41 FF 40 FF 
0B FF 3F FF 3F FF 6E FF 6D FF 6C FF 6B FF 6A FF 69 FF 
08 08 2F FF 2F FF 5F F8 5E FF 5D FF 5C FF 5B FF 5A FF 
0F BE 1F FF 1F FF 68 FF 67 FF 66 FF 65 FF 64 FF 63 FF 

08 08 07 FC 07 FC 59 FF 58 FF 57 FF 56 FF 55 FF 54 FF 
0A FF 3F FF 3F FF 62 FF 61 FF 60 FF 7F FF 7E FF 7D FF 
08 08 2F FF 2F FF 53 FF 52 FF 51 FF 50 FF 4F F1 4E FF 
0F BE 1F FF 1F FF 7C FF 7B FF 7A FF 79 FF 78 FF 77 FF 
沙发
yuntian|  楼主 | 2008-3-12 21:15 | 只看该作者

用的C18编译器

没招了,哪位解救下.

使用特权

评论回复
板凳
su_mj000| | 2008-3-13 02:46 | 只看该作者

你的coding方法有问题。

应该改为:

const rom uchar test_code[]=
{0x0F,0xBF,0x07,0xFC,...
0x08, 0x08, 0x3F, 0xF7, ...

看上去这是个点阵图。

使用特权

评论回复
地板
su_mj000| | 2008-3-13 02:58 | 只看该作者

如果要使用字符串,

则字符串按理不能跨行。

使用特权

评论回复
5
yuntian|  楼主 | 2008-3-13 08:36 | 只看该作者

楼上

改成0X那就麻烦大了,大片的数据都是字符ASSCLL码的,再试不跨行看看,不过每个字符都加一个""也头大呀,数据有好几百行

使用特权

评论回复
6
yuntian|  楼主 | 2008-3-13 10:57 | 只看该作者

用笨办法

估计是字符串超长,只能每一行都加""了.

使用特权

评论回复
7
xwj| | 2008-3-13 11:06 | 只看该作者

很奇怪的设计,明明是十六进制数据,为什么要用字符串?

多浪费空间啊,用起来还要另外转换...

改成0X那没什么麻烦的,
很简单啊,把空格替换成,0x即可,换行也同样处理

使用特权

评论回复
8
yuntian|  楼主 | 2008-3-15 08:44 | 只看该作者

回楼上

不奇怪,因为我的大量数据是不确定的,是用串口收的字符码,没办法转成16进制的,有好几百K,我只是用其中的一部分不停的测试.这不是产品,是一个测试机.

使用特权

评论回复
9
su_mj000| | 2008-3-18 23:40 | 只看该作者

无论如何,字符串不能分行。

使用特权

评论回复
10
兰天白云| | 2008-3-20 18:13 | 只看该作者

把这么多数据敲进去不也累死?

应该还有其他方法

使用特权

评论回复
11
computer00| | 2008-3-20 18:38 | 只看该作者

自己写个小程序转换吧,自动产生代码就行了

这样搞多浪费空间呀

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

178

帖子

1

粉丝