Frage zu Beispielloesung K&R 5.5

28/12/2008 - 20:18 von Marcus Müller | Report spam
Hallo,

ich habe im Internet folgende Beispielloesung fuer Aufgabe 5.5 K&R
gefunden (http://clc-wiki.net):

char *liw_strncpy(char *s, const char *ct, size_t n) {
char *p;

p = s;
for (; n > 0 && *ct != '\0'; --n)
*p++ = *ct++;
for (; n > 0; --n)
*p++ = '\0';
return s;
}

Kann es sein, dass

a) das const als Parameterzusatz unnoetig ist? (aber gut zur Dokumentation?)

b) die Variable p grundsaetzlich unnoetig ist, da ohnehin call-by-value?

Vielen Dank,

Marcus (der nur ein halbwegs guter C-Programmierer werden will ;))
 

Lesen sie die antworten

#1 Stefan Reuther
28/12/2008 - 20:46 | Warnen spam
Marcus Müller wrote:
char *liw_strncpy(char *s, const char *ct, size_t n) {
char *p;
p = s;


[...]
Kann es sein, dass

a) das const als Parameterzusatz unnoetig ist? (aber gut zur
Dokumentation?)



Es ist insofern "unnötig", als dass es wahrscheinlich keinen Einfluss
auf den generierten Code haben wird.

Allerdings ist es guter Stil, es zu verwenden. Wenn du eine Funktion
schreibst, die durch Verwendung von 'const' an der Stelle
"dokumentiert", dass sie den String nicht àndern wird, wird dich der
Compiler warnen, wenn du es dennoch versehentlich versuchst.

b) die Variable p grundsaetzlich unnoetig ist, da ohnehin call-by-value?



Ja.


Stefan

Ähnliche fragen