Nein, wenn "aufgabe1" länger ist als der Puffer, ist das Ergebnis nicht undefiniert, sondern die Strings sind ungleich (ist nur ein Vergleich, kein strcpy!). Wenn das Stringende 0 fehlt muss natürlich strncmp genommen werden.
Wenn sich der String nicht ändert, kannst du ihn im Flash lassen und musst nicht SRAM und Flash belegen:
Code:
#include <avr/pgmspace.h>
if (0 == strncmp_P (uip_appdata, "aufgabe1", uip_len))
{
// mach was bei Gleichheit der ersten uip_len Zeichen
}
if (0 == strcmp_P (uip_appdata, "aufgabe1"))
{
// mach was bei Gleichheit
}
Lesezeichen