加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

神秘的C语法

发布时间:2020-12-16 10:51:10 所属栏目:百科 来源:网络整理
导读:我试图通过并理解一个使用内在速度的卡方程序.在这个过程中,我遇到了一行我无法理解的代码. 我试过检查教科书,谷歌和搜索这个网站没有运气.我认为问题在于,在不了解语法的情况下,我无法用术语或关键词充分描述搜索以获得任何相关结果. 这是我不理解的代码行
我试图通过并理解一个使用内在速度的卡方程序.在这个过程中,我遇到了一行我无法理解的代码.

我试过检查教科书,谷歌和搜索这个网站没有运气.我认为问题在于,在不了解语法的情况下,我无法用术语或关键词充分描述搜索以获得任何相关结果.

这是我不理解的代码行:

float (*chi2_float)(const int,const float*,const float*) = chi2_baseline_float;

以下是包含它的函数:

float chi2_float(const int dim,const float* const x,const float* const y) {
    float (*chi2_float)(const int,const float*) = chi2_baseline_float;
#ifdef __SSE__
    chi2_float = chi2_intrinsic_float;
#endif
    return chi2_float(dim,x,y);
}

在我看来,它可能是声明和定义一个函数,当我注释掉该行并重新编译时,我得到:

错误C2659:’=’:作为左操作数运行
在线
????chi2_float = chi2_intrinsic_float;

如果需要,我可以发送包含此函数的.h文件,但它正如您对参数所期望的那样.

任何帮助将不胜感激.

解决方法

有问题的行是根据__SSE__的值将类型函数指针的变量设置为另外两个函数之一.

然后它调用chi2_float指向的函数并返回结果.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读