我正在使用 Microsoft Visual Studio 2010 编写 C 代码。这是我定义的一段代码:
#define setImagVal_Matrix(matrix,type,x,y,val) \
(getImagVal_Matrix(matrix,type,x,y) = (val))
然后我在这个函数中使用它:
for(bands=0; bands < no_of_bands; bands++) {
outputmatrix[bands] = new_Matrix(yrange,xrange,getDataType_Image(inputImage),getDataFormat_Image(inputImage));
for(r=0; r < no_of_rows; r++) {
for(c=0; c < no_of_cols; c++) {
if(c<x1 || c>x2 || r<y1 || r>y2)
{
continue;
}
else
{
setImagVal_Matrix(outputmatrix[bands],getDataType_Matrix(outputmatrix[bands]),c-x1,r-y1,123);
}
}
}
}
但是,它在 setImagVal_Matrix 函数调用上向我显示了此错误:
“错误:预期表达式”
当我构建解决方案时,这里是在同一行显示语法错误的输出:
1>c:\cviplab-net-2010\cviplab\crop.c(50): error C2059: syntax error : ')'
花了几个小时后,我仍然找不到错误的原因。知道如何解决吗?
编辑:
我分析了预处理文件并发现了语法错误,但我仍然不知道如何修复它。这是导致错误的行:
((((((outputmatrix[bands])->data_type) **)((outputmatrix[bands])->iptr))[r-y1][c-x1]) = (123));
错误是针对)
之后的**