ここにコードスニペットがあります。関数の引数で空ポインタとキャスト
class NetworkRequestChannel {
public:
...
NetworkRequestChannel(const unsigned short _port_number,
void * (*connection_handler) (int *));
...
private:
...
}
質問はvoid * (*connection_handler) (int *)
です。私はそれを読む方法をあいまいに考えています。それは、connection_handler
という名前のオブジェクトへのvoidポインタとして、intポインタにキャストされています。しかし、私はそれがほぼ間違っていることを知っています、そして、それをどのように解釈するかわかりません。
これは関数ポインターであり、単一の 'int *'を引数とし、void *の値(汎用メモリーアドレス)を返す関数を受け入れます。パラメータ自体の名前は 'connection_handler'です。 – mukunda
'class NetworkRequestChannel'は、これがCではなくC++であることを示しています。答えは同じですが、表示されているコードは有効ではありません。 –
これは私がしばらく混乱しているものです。私は、これはクラスのためのもので、私はあまりにも多くの細部を入れないようにしていて、簡単な答えを得ようとしていたことを認めます。しかし、私の教授の任務のすべてにおいて、彼のファイルは '.C'と' .H'拡張子を持つCファイルです。しかし、彼は自分の定義ファイルでもクラスを使用しています。与えられたmakefileは 'g ++ -g'を使います。これは私がこのクラスまで見たことがないようにしようとしているC/C++ハイブリッドのようなものです。 – UnworthyToast