我在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
是一个浮点数组,其他所有数组都是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]
?
答案 0 :(得分:1)
从宏定义中删除空格:
#define NUM_FROM_DENSE_MAT(PTR, II, JJ, RROW) ((PTR[JJ * RROW + II]))
^^
您的代码正在定义一个名为NUM_FROM_DENSE_MAT
的无参数宏。