2015-09-01 3 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. Но это нормально, у меня все работает так, как ты сказал. Мне было интересно, поможешь ли ты мне дальше. Как заставить структуру динамически увеличить ее размер. т. е. присваивает значения i-му элементу структуры hsv? – Trippy

+0

@ пользователь3137258 задавайте отдельный вопрос. – congusbongus

Смежные вопросы