osdir.com


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Lies in education [was Re: The "loop and a half"]


Marko Rauhamaa wrote:
> Grant Edwards <grant.b.edwards at gmail.com>:
>
>> I like [const qualifiers] in C because it allows the linker to place
>> them in ROM with the code. It also _sometimes_ provides useful
>> diagnostics when you pass a pointer to something which shouldn't be
>> modified to something that is going to try to modify it.
> Unfortunately, "const" is so tacky in practice that the language and the
> standard libraries have rendered it useless.
>
> One example is the surprising fact that string literals in C are "char
> *" and not "const char *".

If not, you couldn't pass a string literal to a function having prototype
void f(char *s);
Of course, if f tries to modify *s, there will be a run time error as 
character string literals are stored in a "special place", and are not 
mutable. This improves performance.