적어도 typedef와 함수 포인터에 대해서는 "우연한 프로그래머"라는 두려운 질병으로 고통 받고 있다고 생각합니다. 그래서 나는 내가 얻은 모든 결과를 기반으로 결과를 분석하기 위해 이들을 포함하는 모든 종류의 조합을 실험 해왔다.typedef가 함수 포인터로 작동하는 방법
하지만 다른 조합을 시도하면서 결과를 분석하는 대신 지금은 처리 과정에서 길을 잃었습니다.
여러분이이 혼란을 이해하는 데 도움이되기를 바랍니다.
첫 번째 코드 예제
typedef void (print)(void);
void do_something (void) { printf("Hello World\n"); }
print *pr;
pr = &do_something;
pr(); // Hello World
두 번째 코드 예
typedef void (print)(void);
void do_something (void) { printf("Hello World\n"); }
print *pr;
pr = do_something;
pr(); // Hello World
어떻게 두 예제가 작동 위의 코드는,이 함수 이름
에 영향을주지 않습니다 '&'처럼입니다제 3 코드 예를
typedef void (print)(void);
void do_something (void) { printf("Hello World\n"); }
print pr;
pr = do_something; // compile error
pr = &do_something; // compile error
pr();
내가 여기서 일하지만 젠장 위의 과제 중 하나를 기대했다! 필자는 함수 포인터를 이해하지 못한다.
이 도움이 될 수 있습니다 http://stackoverflow.com/questions/4298654/operator-optional-in-function-pointer-assignment –
음 ... 나는 당신이 '전문가 C 프로그래밍'explians C의 var 규칙을 정의하십시오. 나는 당신을 위해 그것을 온라인으로 찾으려고 노력할 것입니다 – shengy
그냥 Google 전문가 C 프로그래밍, 첫 번째 책입니다. '어떻게 선언문이 형성 되었는가?'를 검색하면 – shengy