본문 바로가기
PROGRAMMING/C

C언어 구조체 응용 (구조체와 함수)

by 쪼렙엔지니어 2022. 12. 6.
반응형

오늘은 구조체에 대해서 알아보는 세번째 시간으로 구조체를 사용자 정의 함수에 사용하는 방법을 알아보도록 하겠습니다.

구조체와 사용자 정의 함수

우리가 사용자 정의 함수에서 함수의 값을 main함수와 주고 받으려면 무엇을 사용 했었는지 기억하시나요? 맞습니다. 포인터 입니다. 여기서도 마찬가지 입니다. 포인터가 핵심입니다. 어렵게 배운 포인터를 많이 사용하네요. 그럼 예제를 통해서 바로 알아보도록 하겠습니다.

위 예제를 하나씩 설명해 보겠습니다. 먼저 사용자 정의 함수 부분부터 보겠습니다.

사용자 정의 함수 add_f의 인자를 포인터로 설정하였고, 해당 포인터가 가리키는 주소의 데이터를 1 더하여 저장하는 기능을 가지는 사용자 정의 함수 입니다. 특별히 어렵거나 난해한 부분은 없죠?

그리고 구조체 부분을 보겠습니다.

구조체 ex는 int(정수)타입의 멤버t를 하나만 가지고 있습니다. 이 구조체 ex를 main함수에서 호출 할 때 한번은 일반호출하고 한번은 포인터로 호출하였습니다.

이렇게 하면 구조체의 정수형 멤버 i.t와 구조체의 포인터 정수형 멤버 j.t가 생성된것과 같은 의미라는 것 알고 계시죠? 그리고 나서 호출한 구조체 i와 j를 연동시켰습니다.

그리고 구조체 j의 멤버에 100을 입력하였습니다. 우리가 구조체 j의 멤버에 값을 입력했지만 사실 이건 구조체 포인터 j가 구조체 i를 가리키고 있으니 구조체 i의 멤버 t에 100이 입력되는 것입니다. 

그리고 사용자 정의 함수 add_f를 호출하여 한번은 구조체 i.t의 값을 직접 변경하였고, 한번은 구조체 포인터 j.t의 값을 변경하여 구조체 i.t의 값을 변경해 보았습니다. 이때 중요한 것은 사용자 정의 함수의 인자부분입니다.

우리가 사용자 정의 함수를 선언할 때 인자를 포인터형식으로 선언했기 때문에 호출 할 때도 반드시 주소값 형식으로 호출해야 함을 잊지 말아야 합니다. 그럼 실행하여 실행결과가 어떻게 되는지 한번 보겠습니다.

정상적으로 잘 출력되는 것을 확인 할 수 있습니다. 이렇게 구조체라고 해서 특별히 다르게 생각할 필요 없습니다. 배열이나 변수같이 사용이 가능한 것을 알 수 있었습니다. 오늘은 여기까지 하겠습니다. 감사합니다.

 

제 블로그를 방문해 주셔서 감사합니다.

도움이 되셨다면 공감(좋아요) 부탁드리고,

댓글은 다른분들께도 좋은 정보일 수 있으니

공개로 부탁드립니다.

여러분의 작은 정성이 좋은 포스팅을 생산하는

힘이 된답니다. :)

감사합니다.

반응형

'PROGRAMMING > C' 카테고리의 다른 글

C언어 공용체  (0) 2022.12.13
C언어 구조체 응용 (이중 구조체)  (0) 2022.12.08
C언어 구조체 심화 (구조체포인터)  (0) 2022.11.30
C언어 구조체 기초  (0) 2022.11.28
C언어 Function 응용 #2 (사용자 정의 함수)  (0) 2022.11.23

댓글