0
我在C定义这样一个宏功能: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
是float阵列,并且所有其它的是整型数字。
但是,当我complie它,我得到了以下错误:
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]
?
对此使用类似函数的宏是一个非常糟糕的主意。你所做的只是创建混淆和不安全的代码,没有收获。 – Lundin 2013-04-05 14:06:45