PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Передача целого по ссылке


Передача целого по ссылке

Сообщений 1 страница 2 из 2

1

Что-то не пойму как передать целое число по ссылке - чтобы потом в нем вернулся результат.
Со строкой получается. С целым - нет.

Код:
	
	Procedure Test(*result.l)
    PrintN("Test result="+Str(*result))
    *result+5
    PrintN("Test result="+Str(*result))
	EndProcedure	
	
	Procedure Test2(*result.s)
    PrintN("Test2 result="+*result)
    *result+" Add"
	EndProcedure


   OpenConsole()

	nTest.l=34
	PrintN("")
	PrintN(Str(nTest))
	PrintN(Str(@nTest))
	Test(@nTest)
	PrintN(Str(nTest))
	
	Text$ = "Hello"
	PrintN("")
	PrintN(Text$)
	PrintN(Str(@Text$))
	Test2(@Text$)
	PrintN(Text$)

PrintN("Press Enter >")
Input()

результат

Код:
34
4389604
Test result=4389604
Test result=4389609
34

Hello
3743376
Test2 result=Hello
Hello Add
Press Enter >

Что я делаю не так?

0

2

Этот код в текущих версиях PB не компилируется, потому что у указателя не должно быть типа.
Передавать по ссылке нужно через структуру.

Код:
Procedure Test(*result.long)
  PrintN("Test result="+Str(*result\l))
  *result\l+5
  PrintN("Test result="+Str(*result\l))
EndProcedure	

Procedure Test2(*result.string)
  PrintN("Test2 result="+*result\s)
  *result\s+" Add"
EndProcedure

OpenConsole()
nTest.l=34
PrintN("")
PrintN(Str(nTest))
PrintN(Str(@nTest))
Test(@nTest)
PrintN(Str(nTest))

Text.string\s = "Hello"
PrintN("")
PrintN(Text\s)
PrintN(Str(@Text\s))
Test2(@Text)
PrintN(Text\s)

PrintN("Press Enter >")
Input()

0


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Передача целого по ссылке