강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

it09kim님의 프로필 이미지
it09kim

작성한 질문수

홍정모의 따라하며 배우는 C언어 (부록)

17.7 인터페이스 적용 사례

함수포인터 질문드립니다

해결된 질문

작성

·

217

0

안녕하세요

main.c 함수에서

void write_file(const List * const plist) 내에 있는

unsigned int count = WriteAllItems(plist, file, &write_an_item);

에서는 &write_an_item을 주소값으로 넘기고

void print_all(const List* plist) 내에 있는

PrintAllItems(plist, print_an_item); 함수에서는

print_an_item을 주소값이 아닌 그냥 함수자체로 넘기는데

왜 두개가 다른 방식으로 넘기는지 궁금합니다

답변 1

1

안녕하세요 : )

함수의 주소를 넘길 때 함수 이름에 & 붙이던 안붙이던 상관없습니다!

따배C 에서 함수 포인터 배우셨겠지만 함수 이름 그 자체가 함수의 주소입니다.

그래서 print_an_item 자체도 print_an_item 함수의 주소이고, &print_an_item 도 마찬가지입니다.

즉,  print_an_item, &print_an_item 둘 다 값이 동일합니다.

결과가 동일한 것을 확인할 수 있습니다. 

it09kim님의 프로필 이미지
it09kim
질문자

감사합니다^^

it09kim님의 프로필 이미지
it09kim

작성한 질문수

질문하기