인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

호두님의 프로필 이미지
호두

작성한 질문수

홍정모의 따라하며 배우는 C언어

14.23 자료형에게 별명을 붙여주는 typedef

[15:30] typedef char(*FRPTC3())[3];

작성

·

236

0

안녕하세요?

아래 코드의 빨간박스 부분이 char 3개짜리의 포인터를 리턴하는 함수를 FRPTC3라는 식별자로 사용한다라고 해석하면 되는건가요?

안에서 부터 해석하면 

1. FRPTC3(), ()가 우선순위가 높으니까 일단 함수이고

2. *FRPTC3(), 포인터에 대한 함수이고

3. 무엇에 대한 포인터냐, char[3]에 대한 포인터이다.

아래에 있는 typedef char(*(*PTFRPTC3)())[3]; 은

1. (*PTFRPTC3), 괄호로 싸여있으니까 일단 포인터이고

2. (*PTFRPTC3)(),  매개변수가 없는 함수에 대한 포인터다.

3. char(*(2번까지의 과정))[3];  매개변수가 없고 char 3개짜리에 대한 포인터를 반환하는 함수에 대한 포인터다.

결국

1. typedef char(*FRPTC3())[3];은 typedef로 함수를 FRPTC3라는 식별자로 재정의한거고

2. typedef char(*(*PTFRPTC3)())[3];은 typedef로 함수포인터를 PTFRPTC3라는 식별자로 재정의

한건가요?

뭔가 정리가 되는 거 같으면서도 아직은 헷갈리네요.

감사합니다.

답변 2

1

홍정모님의 프로필 이미지
홍정모
지식공유자

이것도 아래 적어드린 대로 선언 후에 실제로 대입해보면서 컴파일러에게 배워보세요. 여러가지로 실험해보시다 보면 감이 옵니다.

0

호두님의 프로필 이미지
호두
질문자

안녕하세요?

주소를 찍어봤습니다.

감사합니다.

호두님의 프로필 이미지
호두

작성한 질문수

질문하기