関数呼び出しから割り当ての正しいデータ型を見つけるのに助けが必要です。
contentのフィールドのデータを取得しようとしていますN_Vector u。ドキュメントの内容は次のとおりですN_Vector。
タイプ
N_Vectorは次のように定義されますN_Vector u; tpedef struct _generic_N_Vector *N_Vector; struct _generic_N_Vector { void *content; struct _generic_N_Vector_Ops *ops; };..。
[並列NVECTORモジュール]は、のコンテンツフィールドを、
N_Vectorグローバル長とローカル長を含む構造体、連続するローカルデータ配列の先頭へのポインター、MPIコミュニケーターおよびフラグとして定義します。struct _N_VectorContent_Parallel { long int local_length; long int global_length; booleantype own_data; realtype *data; MPI_Comm comm; }
contentつまり、タイプの構造を_generic_N_Vector「指し示す」ということだと思い_N_VectorContent_Parallelます(右?)。
次に、にアクセスするためにマクロを使用しようとしますcontent。これがのドキュメントですNV_CONTENT_P。
v_cont=NV_CONTENT_P(v)タイプのコンテンツ構造v_contへのポインタになるように設定します。N_Vectorstruct _N_VectorParallelContent
構造体の別の名前に注意してください!
どういう意味ですか?私はどのタイプであると宣言v_contしますか?
私は試した
N_Vector u;
...
_N_VectorParallelContent *v_cont1;
_N_VectorContent_Parallel *v_cont2;
v_cont1 = NV_CONTENT_P(u);
v_cont2 = NV_CONTENT_P(u);
ただし、これらの宣言では、「'_ N_VectorContent_Parallel'undeclared...」または「'_N_VectorParallelContent'undeclared...」というエラーが発生しました。
しかし、これらの構造はすでに削除されている必要があるようです。uタイプのを正常に宣言(および使用)しましN_Vectorた。そして、ドキュメントにはN_Vector、これら2つの構造の1つ(または両方)が含まれていると書かれているようです。
では、なぜエラーメッセージが表示されるのでしょうか。 v_cont データを受信 するために宣言する正しいデータ型は何NV_CONTENT_Pですか?
これは長くて詳細な質問であることは知っていますが、それを理解するのに十分な理解がありません。ご協力いただきありがとうございます。