:: Re: [DNG] "Common knowledge?"-quest…
Page principale
Supprimer ce message
Répondre à ce message
Auteur: Rainer Weikusat
Date:  
À: dng
Sujet: Re: [DNG] "Common knowledge?"-question
"Dr. Nikolaus Klepp" <dr.klepp@???> writes:
> Am Freitag, 22. Januar 2016 schrieb Rainer Weikusat:


[...]

>>     name_len = strlen(name);
>>     what_len = strlen(what);
>>     total = name_len + what_len + 3;

>>
>>     p = buf = alloca(total);
>>     memcpy(p, name, name_len);
>>     p += name_len;
>>     *p++ = ' ';
>>     memcpy(p, what, what_len);
>>     p += what_len;
>>     *p++ = ':';


[...]

> just out of couriosity: why don't you use "strcat"?


Because strcat is A Seriously Bizarre Invention[tm].

    Programmers using the strcat or wcscat function (or the
    following strncat or wcsncar functions for that matter) can
    easily be recognized as lazy and reckless. In almost all
    situations the lengths of the participating strings are known
    (it better should be since how can one otherwise ensure the
    allocated size of the buffer is sufficient?) Or at least, one
    could know them if one keeps track of the results of the various
    function calls. But then it is very inefficient to use
    strcat/wcscat. A lot of time is wasted finding the end of the
    destination string so that the actual copying can start.


    https://www.gnu.org/software/libc/manual/html_node/Copying-and-Concatenation.html#Copying-and-Concatenation