易码技术论坛

 找回密码
 加入易码
搜索
查看: 161562|回复: 8

这到底是哪错了?

[复制链接]
发表于 2005-9-23 18:58:00 | 显示全部楼层
有初始值的数据应定义为全局变量。
 楼主| 发表于 2005-9-23 19:23:00 | 显示全部楼层
本来是想用局部变量来画地图(用完就删,就不用读DAT文件),看来又不行了。
发表于 2005-9-23 19:33:00 | 显示全部楼层
当然不行了。

就算在c语言里,函数内部定义的有初始值的数组也必须在前面加static。而一旦加了static,这个数组将在程序的生存期内长期存在。
 楼主| 发表于 2005-9-23 19:50:00 | 显示全部楼层
顺便问一下,LAVA1.0可以定义的变量(有初始值的数据)最大是多少字节?
发表于 2005-9-23 20:01:00 | 显示全部楼层
最大是可用RAM的大小。
发表于 2005-9-29 23:56:00 | 显示全部楼层
不是不能这样用局部变量,只是程序没有提供这样的功能而已。

我教你个办法(其实是看到这个贴子刚想到的办法):

要想在局部变量里直接给变量赋数组值,先用程序把你要用的数据写到一个文件,然后用文本编辑打开,把那堆乱码全部复制,那就是你要用的数据,然后在声明了局部变量后,加一句:

sprintf(刚才声明的数组名,"插入位置");

然后把刚才复制的那堆乱码粘贴到插入位置就可以了。

注意!刚才小试了一下,只有个问题,就是对数组里0的处理问题,毕竟是字符串的处理函数,所以赋的值不能有0,可能这个方法就这个缺陷了!
2796_15420_1193.gif
2796_15420_1194.gif
发表于 2005-9-30 00:03:00 | 显示全部楼层
难道读文件很难么……-_-b

设计的时候,不要用一些诡异的方法。常规的方法才是最保险的……

否则代码的可读性,可复用性都会下降。
发表于 2005-9-30 00:11:00 | 显示全部楼层
速度优先!

而且不占用文件缓冲,要是已经打开了3个文件,还要先关闭一个文件保存那个文件名。

尤其是画灰度图的情况下0和1在星星上就看不出来,用这个方法跟快捷。
 楼主| 发表于 2005-9-23 18:36:00 | 显示全部楼层 |阅读模式
void writebg(){<BR>char fa[]={<BR>0xff,0xe0,0x80,0x20,0xbb,0xa0,0x8a,0x20,<BR>0x91,0x20,0xa0,0xa0,0xbb,0xa0,0x8a,0xa0,<BR>0xba,0xa0,0xa0,0x20,0xbb,0xa0,0x8a,0xa0,<BR>0x89,0x20,0xba,0xa0,0x80,0x20,0xff,0xe0};

<BR>WriteBlock(60,30,11,16,1,fa);

Refresh();

}

<BR>void main()<BR>{<BR>    ClearScreen();<BR>    writebg();

    <BR>    getchar();<BR>}

**********************************

Compiling...<BR>1 PASS OK!<BR>2 PASS OK!<BR>错误:语法错误发生在3行


*****************************************************

如果是这样写就不会出错

char fa[]={0xff,0xe0,0x80,0x20,0xbb,0xa0,0x8a,0x20,<BR>0x91,0x20,0xa0,0xa0,0xbb,0xa0,0x8a,0xa0,<BR>0xba,0xa0,0xa0,0x20,0xbb,0xa0,0x8a,0xa0,<BR>0x89,0x20,0xba,0xa0,0x80,0x20,0xff,0xe0};<BR>void writebg(){


<BR>WriteBlock(60,30,11,16,1,fa);

Refresh();

}

<BR>void main()<BR>{<BR>    ClearScreen();<BR>    writebg();

    <BR>    getchar();<BR>}<BR>

这到底是哪错了?
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2025-8-24 12:46 , Processed in 0.010907 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表