是否可以在没有外部链接的情况下声明具有 C 链接的函数?尝试编译时
extern "C" static void f() {}
我明白了
f.cc:1: error: invalid use of 'static' in linkage specification
在某种程度上,这是有道理的。在namespace { extern "C" void f() {} }
中,说明extern
符似乎覆盖了匿名命名空间的受限范围。
如果这是不可能的,那么将函数指针传递给 C 是否重要?