静的メンバー関数と extern "C" リンケージ関数の違いは何ですか? たとえば、C++ で「makecontext」を使用する場合、関数へのポインターを渡す必要があります。「makecontext」はCであるため、Googleはextern「C」リンケージを使用することをお勧めします。しかし、静的を使用しても同様に機能することがわかりました。私は運がいいのか、それとも…
class X {
public:
static void proxy(int i) {}
}
makecontext(..., (void (*)(void)) X::proxy, ...);
対
extern "C" void proxy(int i) {}
makecontext(..., (void (*)(void)) proxy, ...);
EDIT:静的メンバーバージョンが機能しないコンパイラまたはアーキテクチャを表示できますか(コンパイラのバグではありません)?