On Thu, Oct 12, 2017 at 6:22 PM, Marko Rauhamaa <ma...@pacujo.net> wrote: > Grant Edwards <grant.b.edwa...@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 *". Additionally, you can launder any constant > string into a nonconstant string with strstr(3): > > const char *cs = "hello"; > char *s = strstr(cs, ""); > s[0] = 'y';
Well hey, if you want that, you can just cast the pointer. C is not about preventing you from doing things. The 'const' keyword is a useful protection (and one that would be more useful if string literals were const), but it's not meant to be a straitjacket. ChrisA -- https://mail.python.org/mailman/listinfo/python-list