c언어 고수님들..

글쓴이2019.05.24 23:03조회 수 341댓글 6

  • 2
    • 글자 크기

* 반말, 욕설시 게시판 글쓰기 권한 영구 정지

 

 

과제로 전화번호부 프로그램을 짜고있는데요

 

분할 컴파일해서 프로그램을 만들어야 하는데

 

헤더파일이 이렇고2019-05-24 22;57;10.PNG

 

메인.c가 2019-05-24 22;57;27.PNG

이렇게 돼있으면 

 

각각의 함수에서는

전화번호를 저장하는 구조체에 접근을 어떻게 해야하나요?

 

파라미터없이 접근이 가능한가요?

  • 2
    • 글자 크기

댓글 달기

  • 전역변수에 구조체 배열의 포인터를 저장하고 함수에서 그 전역변수를 이용해서 접근가능. 하지만 이렇게 코드짜는 방식은 매우 안 좋은 방식이니 사용하지 말것. 항상 파라미터를 이용하시길
  • @힘쎈 둥근잎유홍초
    글쓴이글쓴이
    2019.5.24 23:11
    아 그러면 각 함수들 파라미터에 포인터를 넣어서 하면 될까요?
  • @글쓴이
    네. Call by reference 방식을 사용하세요.
  • @힘쎈 둥근잎유홍초
    글쓴이글쓴이
    2019.5.24 23:14
    감사합니다
  • @글쓴이
    근데 코드보니 구조체배열을 전역변수로 쓰셨는데 저런 경우에는 함수에서 파라미터나 다른 방식 없이 바로 직접 접근이 가능하겠네요. 근데 저렇게 코드쓰면 돌아는가지만 좋은 코딩습관은 아닙니다
  • 직접 작성하신 코드가 아니라 세부 함수들을 직접 구현하라고 틀만 받으신 것 같은데,

    phone.h에 PhoneBook이 전역 변수 배열로 선언되어 있으니 PhoneBook[0].Name으로 접근 가능합니다.

    예를 들어 0번째 이름이 홍길동이고 전화번호가 123-4567이라면

    strcpy(PhoneBook[0].Name, "Hong Gil-Dong");
    strcpy(PhoneBook[0].PhoneNumber, "123-4567");

    위와 같은 방식으로 사용 가능합니다.

    근데... 이걸 작성하려면 문자열을 어떻게 처리할지, 정렬을 어떻게 할지 정도는 다 알고 계셔야 될 것 같네요.
첨부 (2)
2019-05-24 22;57;10.PNG
7.7KB / Download 0
2019-05-24 22;57;27.PNG
46.0KB / Download 0