静态成员函数和外部“C”链接函数有什么区别?例如,在 C++ 中使用“makecontext”时,我需要传递一个指向函数的指针。Google 建议使用外部“C”链接,因为“makecontext”是 C。但我发现使用静态也可以。我只是幸运还是...
class X {
public:
static void proxy(int i) {}
}
makecontext(..., (void (*)(void)) X::proxy, ...);
对比
extern "C" void proxy(int i) {}
makecontext(..., (void (*)(void)) proxy, ...);
编辑:您能否展示静态成员版本不起作用的编译器或体系结构(并且它不是编译器中的错误)?