• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

함수포인터 질문드립니다

21.04.15 00:24 작성 조회수 114

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

안소님의 프로필

안소

2021.04.18

안녕하세요 : )

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

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

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

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

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

it09kim님의 프로필

it09kim

질문자

2021.04.18

감사합니다^^