Можно ли объявить функцию с C-связью без наличия внешней привязки? При попытке скомпилировать
extern "C" static void f() {}
Я получаю
f.cc:1: error: invalid use of 'static' in linkage specification
что имеет смысл, в некотором роде. В namespace { extern "C" void f() {} }
спецификатор extern
, кажется, переопределяет ограниченную область анонимного пространства имен.
Если это невозможно, имеет значение при передаче указателя функции на C?