2015-09-01 74 views
0

我已閱讀了有關此特定錯誤的其他問題,但我仍無法理解爲何發生這種情況。參數名稱省略

當我將一個結構hsvoutput傳遞給函數RGBtoH時,它意味着運行函數RGBtoHSV,它將RGB值轉換爲HSV值。然後,我想將這些HSV值保存在我已經定義的結構中:

RGB值來自從PPM圖像獲得的結構。

這是結構定義

struct hsvoutput 
{ 
    float hue; // angle in degrees 
    float saturation; 
    float value; 
}; 

這是函數

int RGBtoH(int r, int g, int b, struct hsvoutput, int i) 
{ 
    float h; 
    float s; 
    float v; 
    RGBtoHSV(r, g, b, &h, &s, &v); 
    hsvoutput.hue[i] = h; 
    hsvoutput.saturation[i] = s; 
    hsvoutput.value[i] = v; 
    return 0; 
} 
+0

到底是什麼問題? – Kiloreux

+0

我收到一個參數名稱省略錯誤。 – Trippy

回答

1

您還沒有與這個命名的任何變量:struct hsvoutput

struct hsvoutput是一個類型名。此外,單獨的struct不會命名一個類型。

在你的函數

所以,給它一個名字,所以你的簽名可能看起來像:

int RGBtoH(int r, int g, int b, struct hsvoutput hsv, int i) 

然後你就可以填充它喜歡:

RGBtoHSV(r, g, b, &hsv.hue, &hsv.saturation, &hsv.value); 
+0

該結構未在RGBtoHSV函數中填充,它填充在RGBtoH函數中。但沒關係,我已經像你說的那樣工作了。我想知道你是否可以幫助我進一步。我如何使結構動態增加其大小。即它會將值分配給hsv結構的第i個元素? – Trippy

+0

@ user3137258問一個單獨的問題。 – congusbongus