2009-12-10 11 views
0

나는 무엇을 해야할지를 결정하고 리턴하는 서브 루틴을 작성하려고합니다.서브 루틴에서 돌아 가기

"점을 돌려주는 서브 루틴은 함수 LOL입니다!" 악 대차, 함수를 본문에서 서브 루틴을 호출하는 것처럼 돌아가길 바란다. 그렇지 않으면이 코드베이스가 정말 빨리 다루기 힘들어지고 반환 값을 반환 할 것이기 때문에 나는 대체를하기 위해 전 처리기를 가지고있다. 기능의 kludgy 보인다.

윌 (어떤 임베디드 시스템에 대한 수식을 쓰고 있는지, API 문서는 "VB에서 실행 중인지"에 대해 더 자세히 설명 할 수 없으므로 죄송합니다.) 내가 할 수있게하거나 힙에 넣을 수 있습니까?

+1

vb (.net?) 함수에 대한 포인터 또는 참조를 반환 할 수 있는지 조사하십시오. C/C++에서 할 수 있다는 것을 알고 있습니다. 그러면 맹목적으로 '서브 루틴'의 응답을 실행할 수 있습니다. – whatsisname

+0

@whatsisname : 무슨 뜻인지 정확히 모르겠다. AddressOf 키워드를 사용하여 함수에 대한 참조를 전달할 수 있습니다. 불행히도 이것이 어떻게 도움이되는지 모르겠습니다. – richo

답변

2

는 나는 내가 대체 할 수있는 전처리있어 것처럼 그렇지 않으면이 코드베이스는 정말 빨리 다루기 얻기 위하여려고하고 있기 때문에, 서브 루틴을 호출하는 함수 본문에 있던대로 복귀 실행하고자하고, 함수의 반환 값을 반환하는 것은 힘든 것으로 보입니다.

아니야. 꼬리 전화는 잘 작동하는 일반적인 방법입니다.

값을 반환하지 않으면 호출 할 수없는 함수를 갖는 것보다 훨씬 바람직합니다.

+0

이 함수는 다른 상황에서는 쓸모가 없습니다. 그 다음으로 가장 좋은 옵션은 매크로를 대체하기 위해 내 자신의 전 처리기를 구현하는 것입니다. 고맙지 만, 올바르게 작동한다면 다른 것들이 교체 할 수 없기 때문에 그 작업을 진행하기 위해 함께 갈지도 모릅니다. – richo

0

VB에서 C/C++ 스타일 매크로를 구현할 수 있는지 묻는 것처럼 들리지만 대답은 '아니오'입니다. 당신은 아마 vbscript를 생성하고 바른 것들을 대체함으로써 그것을 가짜로 만들 수 있습니다.

VB.Net의 Lambdas와 delegates는 실제로 해석 한 것이 아니라면 당신이 요구하는 것과 같은 것이 아닙니다.