일부 악마 매크로를 사용하여 파일의 모든 함수에 대한 포인터 배열을 생성하고 싶습니다. 불행히도 저는 C99로 제한되어 있고별로 인기가없는 컴파일러가 아닙니다.함수 포인터의 전역 배열 초기화
나는 아이디어를 가지고 있지만 안전 있는지 확실하지 않습니다 :
void foo(void)
{
;
}
void bar(void)
{
;
}
typedef void (*FuncPointer)(void);
FuncPointer array[2] = {foo, bar};
내가 그것을 시도하고 컴파일, 심지어 일을하지만, C에 그 사실 이런 종류의 일이라고 MEEN하지 않습니다 안전하거나 휴대 가능합니다.
포인터의 전역 배열 초기화에 대한 보증이 있습니까?
"안전한"의미는 무엇입니까? 아무 의미 없어? 그것을 정의 하시겠습니까? –
물론 보장이 있습니다 : 초기화하면 초기화됩니다. 당신의 이식성 문제는 무엇입니까? 그리고 매크로에서 파일의 모든 함수 이름을 수집하는 것은 불가능하다고 확신합니다. – mafso
@KerrekSB "safe"에 의해 "포인터가 유효 함"을 의미했습니다. – Amomum