C:将指针传递给const数组

时间:2016-07-09 13:24:58

标签: c

当您将指向数组类型的指针传递给一个带有指向const数组类型的指针的函数时,GCC会发出警告。

以下代码:

void foo (const float (*x) [2])
{
    /* do things */
}

int main()
{
    float a [2];
    foo (&a); /* produces compiler warning with gcc */
    return 0;
}

产生警告:“expected'const float(*)[2]'但是参数类型为'float(*)[2]'”

据我所知,数组类型是它们各自的单独类型,因此你应该能够以这种方式将指针传递给它们。这与将“float **”传递给带有“const float **”的函数的问题不同。或者是吗?

只有gcc似乎会对此发出警告,clang对此非常满意。

0 个答案:

没有答案