Le 23/01/2016 12:16, Didier Kryn a écrit :
>
> I'm curious of the reason why you specify
> static void print_start(char const *name, char const *what)
>
> This means the pointers to the arrays of characters are constant
> (not the characters). The effect of this cannot be to protect the
> pointers in the caller program since they are passed by value --
> copied into register or stack before passing control to the function.
> If it is for the sanity of the function itself, then congratulations,
> this is a sane thing to do, even if it is easy to check by eye that
> the pointers aren't modified. But, to be consistent, since your
> function doesn't even modify the content of the strings, you should
> also declare constant the characters themself, like in the following:
> static void print_start(const char const *name, const char const
> *what)
Sorry, I overlooked the code and read "char const *name" as if it
was "char * const name". Actually the syntax you used is equivalent to
"const char *name". It actually protects the string from being
overwritten by the function.