void (*(*f[])()) ();
void형을 반환하는 함수에 대한 포인터를 반환하는 함수의 포인터로 이루어진 배열f의 정의다.
--------------------------
해설:
포인터란?
포인터는 컴퓨터 메모리의 특정 위치를 나타내는 값임
그리고 프로그램의 함수들도 실제로 메모리의 위치를 가진다(폰노이만구조 검색)
때문에 C언어는 함수또한 포인터로 나타낼수 있음
사실 C언어에서 함수의 이름은 메모리의 주소이기도 한데 알 필요는 없고...
(IDE 키기 귀찮아서 온라인 컴파일러 쓸거임)
위와 같이 함수가 있을때
위와 같은 형태로 함수의 포인터를 선언해서 사용할 수 있다
그런데 저 포인터 식을 그대로 쓰면 복잡하니 typedef로 간단하게 쓰겠다
위 코드에서 pf는 반환값과 인자가 없는 함수(void A()꼴)를 가리키는 포인터 타입이다
이때 pf를 반환하는 함수를 만들수도 있다
물론 pf를 반환하는 함수에 대한 포인터(ppf)를 만들수도 있다
또 해당 포인터(ppf)의 배열을 만들수도 있다
여기서는 C
이때 위의 코드를 간단하게 만들기 위해서 사용했던 typedef를 제거하면
위와 같이 이미지의 "그 코드"가 나오고
정상 작동한다!
----------------------------
ps1. 물론 실제로 저딴 코드를 쓸일은 거의 없으니 안심하고 공부하세요 초심자 여러분!
ps2. 근데 저는 C언어로 코딩 안하고 C++ 씁니다
ps3. 이미지는 퍼온거지만 해설 달아서 자작유머









(IP보기클릭)121.170.***.***
문제는 속도 이슈 때문에 임베디드는 C 아니면 C++이라..... C, C++ 사장되는 순간 폰, 티비, 냉장고 등등등 다 느려질거임.ㅠ
(IP보기클릭)211.108.***.***
몰라 난 그냥 람다로 씌워서 펑션포인터 쓸거야 무서워
(IP보기클릭)118.235.***.***
요즘엔 c++도 스마트포인터로 많이 좋아졌으니 안심하고 배우세요!
(IP보기클릭)121.157.***.***
(IP보기클릭)121.157.***.***
(IP보기클릭)211.108.***.***
몰라 난 그냥 람다로 씌워서 펑션포인터 쓸거야 무서워
(IP보기클릭)114.199.***.***
(IP보기클릭)211.244.***.***
(IP보기클릭)211.178.***.***
(IP보기클릭)223.39.***.***
(IP보기클릭)222.118.***.***
러스트로 오거라 | 25.02.09 17:51 | | |
(IP보기클릭)219.251.***.***
순간 리스트인줄 알았네 No(No(No(No))) | 25.02.09 17:57 | | |
(IP보기클릭)194.195.***.***
눈을 떴구나 clojure로 오거라 | 25.02.09 18:02 | | |
삭제된 댓글입니다.
(IP보기클릭)121.170.***.***
[삭제된 댓글의 댓글입니다.]
나쁜짓했으면 실드질말고손절해
문제는 속도 이슈 때문에 임베디드는 C 아니면 C++이라..... C, C++ 사장되는 순간 폰, 티비, 냉장고 등등등 다 느려질거임.ㅠ | 25.02.09 17:52 | | |
(IP보기클릭)220.123.***.***
꼭 임베디드 말고도 리눅스에서 하드웨어 제어하는 소프트웨어 만들때 시스템 구조체가 죄다 C로 되어있어서... 물론 java나 파이썬 같은 걸로도 쓸 수는 있지만 아무래도 이쪽은 죄다 성능중시다보니 한번 이상 포장되는걸 선호하지 않음; | 25.02.09 18:12 | | |
(IP보기클릭)218.37.***.***
(IP보기클릭)119.200.***.***
(IP보기클릭)220.123.***.***
지나가던 ja-va_script : 맞지 맞지! | 25.02.09 18:13 | | |
(IP보기클릭)118.235.***.***
요즘엔 c++도 스마트포인터로 많이 좋아졌으니 안심하고 배우세요!
(IP보기클릭)49.142.***.***
(IP보기클릭)126.171.***.***