0

私はcでそのようなマクロ関数を定義しました:

#define NUM_FROM_DENSE_MAT (PTR, II, JJ, RROW) ((PTR[JJ * RROW + II]))

そして、私は次のように呼び出しました:

/*io.h:141*/ float num = NUM_FROM_DENSE_MAT(p_mat->p_val_host, i, j, p_mat->row);

はfloatp_mat->p_val_host配列で、その他はすべて int の数値です。

しかし、それに従うと、次のエラーが発生しました。

io.h(141): error: identifier "PTR" is undefined

io.h(141): error: identifier "II" is undefined

io.h(141): error: identifier "JJ" is undefined

io.h(141): error: identifier "RROW" is undefined

に翻訳すべきではありませんp_mat->p_val_host[j * p_mat->row + i]か?

4

1 に答える 1

1

マクロ定義からスペースを削除します。

#define NUM_FROM_DENSE_MAT(PTR, II, JJ, RROW) ((PTR[JJ * RROW + II]))
                         ^^

あなたのコードは、 というパラメーターなしのマクロを定義していましたNUM_FROM_DENSE_MAT

于 2013-04-05T13:56:29.583 に答える