Buenas, quiero reportar un bug con el retorno de strings desde las funciones
retornar un string de una funcion anda bien
lo que no anda bien es retornar un string desde una funcion que retorna string, es decir, algo como lo siguiente;ç
[font=Verdana][size=10px]
function string get_nombre()
begin
return nombre();
end
function string nombre()
begin
return "lol";
end
[/size][/font]
splinter@linux-dtax:~/tmp> cat string.prg
import "mod_say";
function string nombre()
begin
return "lol";
end
begin
say(nombre());
end
splinter@linux-dtax:~/tmp> bgdc string.prg
BGDC 1.0.0 (Oct 2 2013 23:03:10)
Bennu Game Development Compiler
Copyright (c) 2006-2013 SplinterGU (Fenix/BennuGD)
Copyright (c) 2002-2006 Fenix Team (Fenix)
Copyright (c) 1999-2002 Jos� Luis Cebri�n Pag�e (Fenix)
File string.dcb compiled (36901 bytes):
Processes 2
Global data 212 bytes
Local data 208 bytes
Private data 0 bytes
Public data 0 bytes
Code 36 bytes
System processes 58
Globals vars 21
Locals vars 27
Private vars 0
Publics vars 0
Identifiers 476
Structs 4
Strings 17 (144 bytes)
splinter@linux-dtax:~/tmp> bgdi string
lol
splinter@linux-dtax:~/tmp>
podrias dar mas detalles?
El ejemplo que da error sería mas o menos asi:
import "mod_say";
function string nombre()
begin
return "lol";
end
function string nombre_again()
begin
return nombre();
end
begin
say(nombre_again());
end
splinter@linux-dtax:~/tmp> bgdc string.prg
BGDC 1.0.0 (Oct 2 2013 23:03:10)
Bennu Game Development Compiler
Copyright (c) 2006-2013 SplinterGU (Fenix/BennuGD)
Copyright (c) 2002-2006 Fenix Team (Fenix)
Copyright (c) 1999-2002 Jos� Luis Cebri�n Pag�e (Fenix)
File string.dcb compiled (37065 bytes):
Processes 3
Global data 212 bytes
Local data 208 bytes
Private data 0 bytes
Public data 0 bytes
Code 52 bytes
System processes 58
Globals vars 21
Locals vars 27
Private vars 0
Publics vars 0
Identifiers 477
Structs 4
Strings 17 (144 bytes)
splinter@linux-dtax:~/tmp> bgdi string
lol
splinter@linux-dtax:~/tmp> cat string.prg
import "mod_say";
function string nombre()
begin
return "lol";
end
function string nombre_again()
begin
return nombre();
end
begin
say(nombre_again());
end
a mi me funciona.
que version estas usando?
Perdon, Ya encontre el problema, es cuando pones la funcion "padre" despues de la q llamas:
import "mod_say";
function string nombre_again()
begin
return nombre();
end
function string nombre()
begin
return "lol";
end
begin
say(nombre_again());
end
[size=78%]
[/size]
Copyright (c) 2006-2012 SplinterGU (Fenix/BennuGD)
Copyright (c) 2002-2006 Fenix Team (Fenix)
Copyright (c) 1999-2002 JosÚ Luis Cebrißn Pag³e (Fenix)
File C:\Users\Javis\Documents\Game Development\test\string_rest.dcb compiled (13
538 bytes):
Processes 3
Global data 140 bytes
Local data 44 bytes
Private data 0 bytes
Public data 0 bytes
Code 60 bytes
System processes 5
Globals vars 3
Locals vars 7
Private vars 0
Publics vars 0
Identifiers 186
Structs 1
Strings 5 (33 bytes)
4
Press any key to continue . . .
[/code]
pero ahi imprimio un numero, en el post que habre el hilo, habias puesto algo como ç
por eso no te dije lo del uso antes de la compilacion de la funcion...
...hum puede ser porque en mi codigo original (mucho mas largo, no daba para ponerlo aca) estaba concatenando antes de retornar y quizas eso hacia algun caracter raro.
eso es probable.
Entonces no es un bug, es que hay q poner las funciones que usas antes de donde las usas, no?
si, o declararlas.