有人可以這麼好看,並檢查我的C++到Java翻譯?C++到Java的翻譯
這是C++代碼,我需要翻譯(中rtcmix庫http://rtcmix.org/的一部分)的第一部分:
static void trans(float a, float alpha, float b, int n, double *output){
int i;
float delta, interval = 0.0;
delta = b - a;
if (n <= 1) {
*output = a;
return;
}
interval = 1.0/(n - 1.0);
if (alpha != 0.0) {
float denom = 1.0/(1.0 - exp((double) alpha));
for (i = 0; i < n; i++)
*output++ = a + delta * (1.0 - exp((double) i * alpha * interval)) * denom;
}
else
for (i = 0; i < n; i++)
*output++ = a + delta * i * interval;
}
,這是我的Java編譯:
static void trans(float a, float alpha, float b, int n, double output){
int i;
float delta, interval = 0;
delta = b - a;
if (n <= 1) {
output = a;
return;
}
interval = (float) (1.0/(n - 1.0));
if (alpha != 0.0) {
float denom = (float) (1.0/(1.0 - Math.exp((double) alpha)));
else
for (i = 0; i < n; i++)
output++;
output= a +delta * i * interval;
}
}
對自己運行你的代碼不是很好嗎?比如果你發現任何問題出現問題? –
在C變體中,'output'是一個數組,因此語句'* output ++ = ...'意味着數組中的當前位置被分配了表達式,然後前進到數組中的下一個位置。 –
@umesh沒有,因爲這只是第一部分和Im卡在第二個 – menemenemu