본문 바로가기
책/프로그래밍 이해(작성중)

프로그래밍 이해

by 3604 2023. 3. 15.
728x90

ㅁ조건이 맞으면 실행
C        while
Pascal   while
VB       do...while


ㅁ 조건을 반복문의 마지막에 검사
C      do...while 
Pascal repeat...until

ㅁ 반복 실행 취소
C        Break
Pascal   Break()
VB       Exit

 


출처: https://wwwi.tistory.com/57

VB로 이해하는 C 포인터

◆ VB의 ByVal인수와 ByRef인수

    ' ByVal : 호출된 프로시저나 속성은 호출 코드에서 내부 인수로 사용하는

    ' 변수의 값을 변경할 수 없도록 하는 방식으로 인수가 전달되도록 지정합니다.

    Private Sub subByVal(ByVal sByVal As String)


        sByVal = "ByVal data"


    End Sub



    ' ByRef : 호출된 프로시저가 호출 코드에서 내부 인수로 사용하는

    ' 변수의 값을 변경할 수 있도록 하는 방식으로 인수가 전달되도록 지정합니다.

    Private Sub subByRef(ByRef sByRef As String)


        sByRef = "ByRef data"


    End Sub



    Private Sub subParamTest()


        Dim sParam As String


        sParam = "Parameter"


        subByVal(sParam)


        Call MsgBox("인수가 ByVal 일때 :" & vbCrLf & vbCrLf & _

                    "호출된 함수에서 넘겨진 인수를 바꾸어도 " & vbCrLf & _

                    "호출한 함수에서 인수값이 변하지않음 " & vbCrLf & _

                    "-> " & sParam)


        subByRef(sParam)


        Call MsgBox("인수가 ByRef 일때 :" & vbCrLf & vbCrLf & _

                    "호출된 함수에서 넘겨진 인수를 바꾸면 " & vbCrLf & _

                    "호출한 함수에서 인수값이 변함 " & vbCrLf & _

                    "-> " & sParam)

    End Sub



End Class






◆ VC의 일반 인수와 포인터 인수

void subByRef(CString *pcsMunja)

{

    *pcsMunja = "ByRef data";

}


void subByVal(CString csMunja)

{

    csMunja = "ByVal data";

}


void subParamTest()

{

    CString    csTest = "Parameter";



    subByVal(csTest);


    AfxMessageBox("인수를 그냥 넘겼을때:\n\n"

                  "호출된 함수에서 넘겨진 인수를 바꾸어도\"

                  "호출한 함수에서 인수값이 변하지않음\"

                  "-> " + csTest);


    subByRef(&csTest);


    AfxMessageBox("인수를 포인터로 넘겼을때\\n"

                  "호출된 함수에서 넘겨진 인수를 바꾸면\"

                  "호출한 함수에서 인수값이 변함\"

                  "-> " + csTest);

}


728x90
반응형