Except mebyThis works just fine: ======================================= CLS: CALL a: CALL b: SYSTEM SUB a: Num = 1: GOSUB x: EXIT SUB x: PRINT "Got Here"; Num: RETURN END SUB SUB b: Num = 2: GOSUB y: EXIT SUB y: PRINT "Got Here"; Num: RETURN END SUB ======================================= It shows that SUBs keep the two versions of "Num" distinct, as you would expect. HOWEVER, if you rename "y" to "x" in SUB b, you get SUB b: Num = 2: GOSUB x: EXIT SUB x: PRINT "Got Here"; Num: RETURN <--- Duplicate Label And if you remove that line, hoping to use the "other" label, you get SUB b: Num = 2: GOSUB x: EXIT SUB <---Label Not Defined So there is a bug in QBasic whereby labels are not kept distinct for GOSUB/GOTO. I love GOSUB's! They help reduce the need for indentation and help keep if/then/else constructions small, etc. But now I see a problem. I should be able to keep a library of SUBs and FUNCTIONs and grab any at random and put them in a program I am writing. Now I have to beware of duplicate GOTO labels. Rats!! So in this Kriegspiel Referee project, each design module should have had, as part of its specification, a rule such as # Start all internal GOTO/GOSUB labels (if any) with "x" where "x" is unique for each design module. We were simply lucky that we encountered no integration errors. Mac from IP address 68.98.164.60 Return to Index |
| Response Title | Author and Date |
| Yes, I noticed that too... | on Sep 5 |
| *I've always just used "SubnameLabel:" and "MainLabel:" | on Sep 5 |
| Not a bad idea | on Sep 5 |
| * I did not know that you did not know that but I know that you know that now. | Pete on Sep 5 |
| * But at my age I might not know that tomorrow | on Sep 5 |
| Copyright © 1999-2008 Network54. All rights reserved. Terms of Use Privacy Statement |