백발 청년 햄버거 메뉴

목차

     홍정모 교수님의 따배씨++ 인강 강의노트 14번째 선언과 정의의 분리편 입니다.

     

    이전 강의는 아래에서 확인 가능합니다. 

    13부 : 기본적인 서식 맞추기 https://whiteheadyouth.tistory.com/246

    12부 : 연산자와의 첫만남 https://whiteheadyouth.tistory.com/243

    11부 : 지역범위 Local Scope https://whiteheadyouth.tistory.com/238

    10부 : 키워드와 식별자 이름 짓기 https://whiteheadyouth.tistory.com/234

    9부 : 함수에서 여러개의 리턴값 반환하기(C++17) https://whiteheadyouth.tistory.com/228

    8부 : 함수와의 첫 만남 https://whiteheadyouth.tistory.com/222

    7부 : 입출력 스트림과의 첫 만남 https://whiteheadyouth.tistory.com/211

    6부 : 변수와의 첫 만남 https://whiteheadyouth.tistory.com/208

    5부 : 주석을 잘 다는 방법 https://whiteheadyouth.tistory.com/183

    4부 : 프로그램의 구조 https://whiteheadyouth.tistory.com/181

    3부 : 코딩하다 막혔을 때는? https://whiteheadyouth.tistory.com/170

    2부 : 솔루션, 프로젝트 관리 https://whiteheadyouth.tistory.com/161

    1부 : 통합개발환경의 기본적인 사용법 - 윈도우 비주얼 스튜디오 https://whiteheadyouth.tistory.com/155

    0부 : 홍정모 교수님의 따배씨++ 무료로 인강 듣는 방법 https://whiteheadyouth.tistory.com/89 

     

    선언 Declaration 과  정의 Definition의 분리

     선언과 정의의 분리는 뒤로 가면 굉장히 중요한 부분 입니다. 문법은 뒤로가면 자연스레 알게되지만, 이 부분이 앞에 나오는 이유는 나중에 긴 프로젝트를 진행할 때, 코드 정리하는게 굉장히 어려워집니다. 미리 머릿속에 한번 넣어두고, 코드도 실행해보고 본격적으로 만들어보다가 잘 안될때, 링킹에러 같은거 나올때 시간을 많이 아낄 수 있는 방법 입니다.

     


     함수가 많아질 때 한 눈에 잘 안들어와서 코드를 줄이는 경우도 있습니다. main은 맨 아래에 있고, 함수인 add와 multiply, subtract는 위에 있으니, 이 보다 함수가 많아지면 main에 함수를 삽입하거나 하려면 왔다 갔다 ~ 정신이 없겠지요.

     

     

     그렇다면 메인을 앞으로 두면 되려나요? 안됩니다. 컴파일러는 위에서부터 순차적으로 읽기 때문입니다. 이런경우 컴파일러에 함수를 인식시켜줘야합 니다. 최소한의 조건은 입력이 무엇이고 출력이 무엇인지 파악하는것 입니다.

     

     

     위의 그림처럼 복사해서 붙여주면 인식이 가능합니다. 함수의 최소한의 정보를 포함하고 있는 함수의 형태(입출력 데이터)를 프로토 타입이라고 하는데요. 이 프로토 타입을 이용해서 앞에 실제 기능을 수행하는 부분만 앞으로 빼놓는것을 전방 선언forward declaration이라고 합니다.

     


     여기서 실제로 함수 기능을 하는 것을 정의, definition 이라고 합니다. add는 a+b라는 기능을 하는 것이 정의 이겠지요?

     

     

    정의로 이동(F12),선언으로 이동(ctrl + alt + F12) 외에 정의 피킹(Pick Definition, Alt + F12)을 누르면 정의를 아래의 사진과 같이 보여줍니다. 이는 다른 파일에 선언, 정의가 흩어져있을 때 사용하기 좋습니다.


     선언과 정의를 분리하는 것은 생각보다 간단한 개념이지만 복잡한 코딩할 때 보면 정신이 없어서 헷갈릴 수 있습니다. 기본적인 개념은 머리속에 넣어놓는 것이 좋습니다. 코드를 정리하는 방법이 숙달되도록 연습하면 좋은 프로그래머가 될 수 있다고 하니, 우리 모두 숙달될 수 있도록 노력해보는 것은 어떨까요?

     

     

     

     

     

     

    댓글
    위쪽 화살표
    도움이 되었다면 공감(하트)과 댓글을 부탁드려요.
    //스크립트는 script로 수정해주세요.//