Gast
#1154585
Hallo,
Ich versuche gerade mir eine Debug-Routine zu schreiben die mir
Zeichenketten über die Uart anzeigt. Ich habe dazu einen Uart treiber
der eigentlich nur ein char array und die Länge davon braucht um das zu
tun.
Jetzt bin ich gerade dabei mir das Unterprogramm Debug_MSG(const char
buffer[]); zu schreiben welches ich dann so aufrufen möchte:
Debug_MSG("Hello World");
Dass soll dan weiters den Uart treiber aufrufen und eben ein Hello World
ausgeben. Das funktioniert natürlch so einfach nicht, weil ich ja beim
Aufrug des Unterprogramms die Information über die Länge des Strings
verloren habe und somit nicht an den treiber weitergeben kann.
Die Alternativen:
Debug_MSG("Hello World", 11); //(Länge des Strings mitgeben)
Debug_MSG("Hello World\0"); //(String dann auf \0 parsen)
finde ich unschön.
Gibt es nicht irgendeinen Trick wie ich den const char[] an ein
Unterprogramm weitergebe und dabei nicht durch die Pointer conversion
die Länge des Strings verliere?? Extra jedes Mal eine Variable die dann
den String enthält und global ist, bzw in ein struct verpackt möchte ich
aben auch nicht. Vielleicht irgendwie mit Macros?
Das ganze klingt natürlich etwas kleinlich, aber wenn ich dafür eine
geschickte Lösung finden würde, könnte ich die öfters einsetzen.
Also danke für Tipps!
lg