Скажем, я хочу только открыть функцию из одного из моих файлов, передав указатель функции на эту функцию. Можно ли объявить эту функцию как 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
из другого файла?