如何理解R的.C接口使用中的指针用法

时间:2017-01-30 01:11:33

标签: c r pointers

我是R扩展的初学者。我在理解.C接口的使用方面遇到了问题。以此代码为例:

void cconv(int *l, double *x, int *n, double *s)
     {
       double *y = x + (*n - *l), *z = x + *l, *u = x;
       while ( u < y)
       *s += *u++ * *z++;
     }

在此代码中,我认为参数应该被称为*l*x,因为lx在R环境中定义并转移到{ {1}}界面,如果我错了请更正。但是,在函数.C中,为什么定义cconv而不是double *y,以及为什么在定义double y时混合了指针和int变量。最后,我在其他代码中看到,如果R需要调用*y来返回向量结果.C(...),那么s被定义为C函数中的参数,但计算为{{ 1}}在C函数内部,如:

double *y

0 个答案:

没有答案