Forum: Compiler & IDEs Stringkonstante an Fkt. übergeben


von TechInfo (Gast)


Lesenswert?

Hallo nochmal,

macht es Sinn, eine Stringkonstante in ein char-Array zu kopieren, bevor 
man sie an eine Funktion übergibt?

Z.B.:
1
strcpy(buffer, "Teststring");
2
uartSendBuffer(buffer);

anstatt
1
uartSendBuffer("Teststring");

von Falk (Gast)


Lesenswert?

@ TechInfo (Gast)

>macht es Sinn, eine Stringkonstante in ein char-Array zu kopieren, bevor
>man sie an eine Funktion übergibt?

Es HAT keinen Sinn, AFAIK.

MFG
Falk

von Klaus F. (kfalser)


Lesenswert?

Nur wenn uartSendBuffer() den Parameter überschreibt/zerstört.

Wenn man beim schreiben der Funktion den Parameter mit const 
kennzeichnet, dann weiss der Compiler dass dies nicht erlaubt/gewünscht 
ist und meckert.

void uartSendBuffer(const char *);

Klaus

von Karl H. (kbuchegg)


Lesenswert?

TechInfo wrote:
> Hallo nochmal,
>
> macht es Sinn, eine Stringkonstante in ein char-Array zu kopieren, bevor
> man sie an eine Funktion übergibt?

Das kommt drauf an, was die Funktion mit dem übergebenen Argument
macht.

Beitrag "Re: Verstehe diese Fehlermeldung nicht"

von Stefan K. (_sk_)


Lesenswert?

Du verstehst unter einer Stringkonstante aber nicht zufällig einen 
Flash-String in einem ATmega?

Gruß, Stefan

von TechInfo (Gast)


Lesenswert?

Ich verstehe darunter z.B. "Teststring"

Also ein im Quellcode eingegebener String, der nicht in einer Variable 
abliegt.

Ist der Compiler denn so schlau, den selben String nicht 100 mal im 
Speicher abzulegen, wenn ich 100 mal eben diese Stringkonstante benutze?

von Bobby (Gast)


Lesenswert?

Der GCC ist so schlau.

von Stefan K. (_sk_)


Lesenswert?

... der Compiler ...

???

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.