Возможно ли / безопасно / разумно передать указатель функции на статическую функцию?

Скажем, я хочу только открыть функцию из одного из моих файлов, передав указатель функции на эту функцию. Можно ли объявить эту функцию как static ? Разрешено ли компиляторам заниматься дзюдо, которое сделало бы недействительным мой указатель на функцию, или сделать его бессмысленным вне контекста этого файла, поскольку функция объявлена ​​как специфическая для этого файла?

Не мой код, а (глупый) пример того, что я имею в виду:

void    static   cool_function(void);
void    extern (*cool_function_ptr)(void); // Actually, I’m not sure of where the `extern` goes in a function-
                                           // pointer declaration. Damn you, confusing function-pointer syntax!

Учитывая этот код (или его синтаксически правильное приближение), будет ли незаконным доступ к cool_function_ptr из другого файла?

10
задан ELLIOTTCABLE 28 February 2011 в 04:54
поделиться