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