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);

哪里p_mat->p_val_host是浮点数组,其他都是整数。

但是当我编译它时,我得到了以下错误:

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 回答