Oliver Behr schrieb:
> Beispiel:
>
>
1 | > #include "string.h" // Eclipse Warnung: "Unresolved inclusion"
|
2 | > uint8_t* file_name = "test";
|
3 | >
|
>
> Wenn ich nun im Debugger den Speicher auslese steht da "\032`A\362"
> drin, sizeof(file_name) liefert den Wert 4, obwohl es eigentlich 5 sein
> müsste, wegen der terminierenden '\0'.
Bist du sicher, dass du nicht den Speicher ansiehst, der den Pointer zum
String beherbergt anstatt dem String selber?
und nein. sizeof(file_name) wird ziemlich sicher nicht 5 sein. 4 klingt
plausibel, wenn wir davon ausgehen, dass ein Pointer auf deinem System
eine Länge von 4 Bytes hat, was bei einem ARM nicht ungewöhnlich sein
sollte.
Ich denke, du wolltest eigentlich schreiben
uint8_t file_name[] = "test";
>
> Ich vermute, dass der Übeltäter mein Makefile ist, zumal Eclipse bei
> string.h eine "Unresolved inclusion" meldet. Es handelt sich um ein von
Was Eclipse meldet, ist uninteressant.
Interessant ist, ob dein Compiler die string.h findet oder nicht.
Du verwechselst die IDE mit dem Compiler.