On 15.05.2012 20:19, Gor Gyolchanyan wrote:


On Tue, May 15, 2012 at 7:51 PM, Christophe
<[email protected] <mailto:[email protected]>> wrote:

    using printf will lead to a bug each time the programmer forget the
    trailing
    \0.


First of all, printf shouldn't be used! There's writef and it's superior
to printf in any way!
Second of all, if the zero-termination of literals are to be removed,
the literals will no longer be accepted as a pointer to a character.
The appropriate type mismatch error will force the user to use toUTF8z
to get ht e zero-terminated utf-8 version of the original string.
In case it's a literal, one could use the compile-time version of
toUTF8z to avoid run-time overhead.
This all doesn't sound like a bad idea to me. I don't see any security
or performance flaws in this scheme.

Moreover compiler can do some extra string pooling iff zero termination goes away. Like:
"Hello World!" & "Hello" sharing the same piece of ROM.


--
Dmitry Olshansky

Reply via email to