이전 파일 중 하나에서 코드 조각을 보았습니다.함수 포인터 선언 및 함수 정의 함께
void (*const m_exec[N_EXECS])(void) =
{
#define PROCESS_DEF_TIMED(name) name, // defines macro for use in proclist.h
#define PROCESS_TIMED // define switch for section in proclist.h
#include "proclist.h"
#undef PROCESS_TIMED // undefine switch
#undef PROCESS_DEF_TIMED // undefines macro
};
이 코드의 의미를 이해할 수 없습니다. 선언과 함수 정의가 함께있는 함수 포인터입니까? 나는 다음과 같은 유사한 함수 포인터를 선언하려고하면, 나는 또한 #DEFINE 여기에 무엇을 컴파일 오류
void (*voidFptr)(void) =
{
printf("Hello\n");
}
를 얻을? 이것이 내가 잘 모르는 기능 안에있는 이유는 무엇입니까?
''proclist.h ''에 들어있는 목록에서 함수 포인터 배열을 채우고 있습니다. –
전 처리기를 통해 파일을 실행하고 전처리 된 출력을보십시오. –
헤더 파일을 보셨습니까? 어쩌면 원래 구문과 구문이 다르다는 것을 알 수 있습니다. 프로그램 코드에서 모든 단일 문자는 중요하며 주석 및 문자열 리터럴에서도 중요합니다. – Olaf