"Near initialization for..." 在函数指针数组中

"Near initialization for..." in array of function pointers

我总是做以下事情,我不知道为什么,但它开始给我警告。

我在做:

float (*normalyze_type[5])(void) = {trap, trap, trap, filter, trap};

在 .c 文件的顶部,以便它成为一个全局指针数组。

出于某种原因,gcc 向我发出以下警告:

 (near initialization for ‘normalize_type[0]’) [enabled by default] normalize.c ... line 13 C/C++ Problem
 (near initialization for ‘normalize_type[1]’) [enabled by default] normalize.c ... line 13 C/C++ Problem
 (near initialization for ‘normalize_type[2]’) [enabled by default] normalize.c ... line 13 C/C++ Problem
 (near initialization for ‘normalize_type[3]’) [enabled by default] normalize.c ... line 13 C/C++ Problem
 (near initialization for ‘normalize_type[4]’) [enabled by default] normalize.c ... line 13 C/C++ Problem

已经在网上搜索过,没有找到合适的解决办法。 有谁知道我该如何解决这个问题?

编辑:

陷阱代码():

float trap( const Membership *mf, float x )
{
# define p(pIdx)        mf->parameters[ pIdx ]

if( x < p(B) )  
    return ( x - p(A) ) / ( p(B) - p(A) );

if( x > p(C) )      
    return ( p(D) - x ) / ( p(D) - p(C) );

return 1.0

#undef p
}

过滤器代码():

float filter( const Membership *mf, float x )
{
if( x >= mf->parameters[threshold] )
    return x;

return 0.0;
 }

变量 normalyze_type 的初始值设定项的元素类型不正确。它们的类型应该是 float (*)(void),但它们 实际上 都具有类型 float (*)(const Membership *, float).