Byte Array in struct vergleichen
-
Hallo Jung,
habe hier eine kleine Problem. Ich habe mir ein Struct definiert mit folgender Strukturstruct Value
{
BYTE ID[4];
BYTE Data[8];
};
Später in meinem Programm habe ich eine Member Variable und eine lokale Variable und wie ID mit einander vergleichen.if(m_sValue.ID ==sValue.ID)
Leider ist das immer fals. Der Inhalt von ID ist aber bei beiden gleich.
-
Du vergleichst mit
if(m_sValue.ID ==sValue.ID)
auch nicht den Inhalt deines Byte-Arrays, sondern die Adressen. Diese sind auch nicht identisch. Du musst jedes Element des Arrays einzeln vergleichen.
if(m_sValue.ID[0] == sValue.ID[0] && m_sValue.ID[1] == sValue.ID[1] && ...)
Solltest dir dafür eine Funktion basteln.
-
Hat nichts mit MFC zu tun.
Hat nichts mit C++ zu tun.if( memcmp(m_sValue.ID,sValue.ID,sizeof m_sValue.ID) ) puts("ungleich"); else puts("gleich");