Pir*_*nha 0 java arrays parameter-passing
我必须将代码从Java翻译成OpenCL
我在Java中给出了这个函数:
float dot(int g[], double x, double y, double z) {
return g[0]*x + g[1]*y + g[2]*z;
}
Run Code Online (Sandbox Code Playgroud)
这是一个可能的电话:
dot(g[i], x, y, z);
Run Code Online (Sandbox Code Playgroud)
哪里:i = int和g = usual array of int.
这个奇怪的int g[]参数是什么东西?我以前从未见过这个,也没有找到任何关于"参数名后面的方括号"的内容.
我唯一可以想像,这是某种形式的偏移事情,就像它转换g[0]*x到g[i+0]*x?
在Java中,写这个......
int[] a;
Run Code Online (Sandbox Code Playgroud)
...是相同的...
int a[];
Run Code Online (Sandbox Code Playgroud)
从Java早期开始就是一个宿醉,以帮助C/C++程序员更容易地采用这种语言(和端口代码).
Java允许声明,例如......
int a, b, c[];
Run Code Online (Sandbox Code Playgroud)
...但是这是不鼓励的(因为它是C/C++宿醉).
在Java中,惯例是远离这个并且每行有一个声明,即......
int a;
int b;
int[] c;
Run Code Online (Sandbox Code Playgroud)