Forum: Compiler & IDEs C Api um Bytes in einem Bereich auf einen Wert zu testen


von Uwe Bonnes (Gast)


Lesenswert?

Hallo,

gibt es eine C-Api die das gleiche wie
1
    mem = (uint8_t*) (adresse);
2
    for (i = 0; i < len; i++) {
3
        if (mem[i] != 0xff)
4
            break;
5
    }
6
    if (i >= len) ...
7
    else ...
macht. Es soll geprüft werden, ob alle Bytes in einem Bereich einen 
gewissen Wert haben.

von Peter II (Gast)


Lesenswert?


von Rolf Magnus (Gast)


Lesenswert?

Die entsprechende Standard-C-Funktion heißt strcspn, allerdings erwartet 
die genau wie diese Microsoft-Funktion einen nullterminierten String.

von Uwe Bonnes (Gast)


Lesenswert?

Rolf Magnus schrieb:
> Die entsprechende Standard-C-Funktion heißt strcspn, allerdings erwartet
> die genau wie diese Microsoft-Funktion einen nullterminierten String.

Das passt aber nicht, um eine Seite im Flash auf den gelöschten Wert zu 
testen...

von Karl H. (kbuchegg)


Lesenswert?

Uwe Bonnes schrieb:
> Rolf Magnus schrieb:
>> Die entsprechende Standard-C-Funktion heißt strcspn, allerdings erwartet
>> die genau wie diese Microsoft-Funktion einen nullterminierten String.
>
> Das passt aber nicht, um eine Seite im Flash auf den gelöschten Wert zu
> testen...

Immer die kleinen Nebenbedingungen, die erst im Laufe der Zeit 
rauskommen.

Was spricht dagegen, wenn du dir selbst eine derartige Funktion 
schreibst?


Öhm ... eigentlich nichts.
Du kannst sie ja dann in Analogie zu den str <-> mem Funktionen 
beispielsweise pgm_spn nennen. (pgm weil alle AVR Funktionen auf dem 
Flash pgm_xxx heissen)


PS: für die Zukunft
C hat kein Konzept eines Flash. Alles was damit zusammenhängt ist 
sowieso immer systemspezifisch. Und manchmal schreibt man sich dann eben 
die Funktionen selber, wobei man sich bei der Benamung entweder an 
Standardfunktionen oder an bereits vorhandenen sytsemspezifischen 
Funktionen oder einer Kombination aus beidem orientiert.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.