主题:请问这是什麽?
小小学徒
[专家分:0] 发布于 2007-01-02 11:47:00
学习随机文件,编个小程序,第一行就出现错误提示,搞不懂,求教!提示如下:
hilp:Duplicate defin ition
You are attempting to create a new element in your program and have given it a name that is already being used.
For example:
. A CONST statement uses the same neme as an existing variable .
. A NEW variable or procedure hac the same name as an existing procedure.
starting a variable name with letters "FN" is another way to generate this error,because FN is used exclusively with DEF FN.
回复列表 (共10个回复)
沙发
moz [专家分:37620] 发布于 2007-01-02 21:26:00
不要重复定义变量
变量或函数别要用FN开头
板凳
雪光风剑 [专家分:27190] 发布于 2007-01-02 23:27:00
应该就是重复定义了一个已经存在的变量吧,比如重复定义了文件名字符串写入操作??
3 楼
小小学徒 [专家分:0] 发布于 2007-01-03 09:29:00
多次受二位恩公帮助,无以为报,祝好人平安。
我细想,重复的定义的只有另外的学习小程序中的域名,难道两个BAS文件不是完全独 立的吗?
4 楼
雪光风剑 [专家分:27190] 发布于 2007-01-03 09:55:00
是完全独立但是你是不是有两个程序相互调用的关系?
qbasic里默认所有变量都是全局变量
就会出现跨程序重定义的状况了
5 楼
小小学徒 [专家分:0] 发布于 2007-01-03 10:15:00
我把其他文件都删了,依然不行,实在搞不懂了,我把程序抄下,请费心看看问题出在那?
TYPE ccc
xu AS INTEGER
qihao AS INTEGER
h1 AS INTEGER
h2 AS INTEGER
lan AS INTEGER
END TYPE
DIM sj AS ccc
OPEN "ccc.dat" FOR RANDOM AS #1 LEN=10
DO WHILE qihao=9999
xu% = xu% + 1
INPUT "qihao";qihao%
INPUT "h1"; h1%
INPUT "h2"; h2%
INPUT "lan" ;lan%
PUT #1 ,xu, ccc
LOOP
CLOSE
END
6 楼
小小学徒 [专家分:0] 发布于 2007-01-03 11:43:00
真象大白!原来我在原程序右下方,不知不觉的写了个几乎一样的程序,这两个程序互相看不见,是重复定义,重复到家了。
7 楼
moz [专家分:37620] 发布于 2007-01-03 12:20:00
[quote]qbasic里默认所有变量都是全局变量
就会出现跨程序重定义的状况了[/quote]
恰恰相反,只要函数名不同,变量名不另定义成全局结构或者比较特殊的使用就可以了,
有时候不重复定义,不同结构中也无法传递值,就算重复定义了,也未必能全局传递,
最好还是用参数来传递比较稳妥.
8 楼
雪光风剑 [专家分:27190] 发布于 2007-01-03 13:39:00
[quote]真象大白!原来我在原程序右下方,不知不觉的写了个几乎一样的程序,这两个程序互相看不见,是重复定义,重复到家了。[/quote]
怎么做到的……
9 楼
moz [专家分:37620] 发布于 2007-01-03 17:32:00
如果试过用鼠标粘贴到DOS窗口的就知道了.
10 楼
雪光风剑 [专家分:27190] 发布于 2007-01-03 19:08:00
omg确实长见识了
我来回复