Beste allemaal,
Ik heb een functie waarin een de waarde van een Uint8 omgezet wordt naar ASCII-karakters. De return waarde van deze functie is een Uint8 Return[3] waarin de ASCII-karakters staan.
Je kunt geen array als return value hebben (als ik het goed heb), dus ziet mijn functie er nu zo uit:
Alleen heb ik als probleem dat als ik mijn function-call doe:
krijg ik een error bij het compileren:
take address of rvalue: operator `unary&'.
Haal ik de & weg voor de function-call, compileert hij alleen krijg ik foute waarden.
Hoe los ik dit op?
Voorbaat dank!
Ik heb een functie waarin een de waarde van een Uint8 omgezet wordt naar ASCII-karakters. De return waarde van deze functie is een Uint8 Return[3] waarin de ASCII-karakters staan.
Je kunt geen array als return value hebben (als ik het goed heb), dus ziet mijn functie er nu zo uit:
Code:
U8 *Uint8_to_ASC(Uint8 Val)
{
Uint8 i, Value, Temp, Divider;
Uint8 Rtrn[3];
Divider=100;
Value=Val;
for(i=0;i<3;i++)
{
Temp=Value/Divider;
Rtrn[i]=Temp;
Rtrn[i]+=48; //vanaf Hex 0x30, Dec 48 begint karakter '0'
Value-=Temp*Divider;
Divider/=10;
}
return &Rtrn[0];
}
Alleen heb ik als probleem dat als ik mijn function-call doe:
Code:
Uint8 *AscArr;
AscArr = &Uint8_to_ASC(Getalletje);
krijg ik een error bij het compileren:
take address of rvalue: operator `unary&'.
Haal ik de & weg voor de function-call, compileert hij alleen krijg ik foute waarden.
Hoe los ik dit op?
Voorbaat dank!