On Tue, Nov 22, 2005 at 10:12:07PM +1100, Crossfire wrote: > IIRC, ANSI C[1] makes no guaranty as to the lifetime of literal > strings when their enclosing scope finishes.
I'm fairly sure ANSI C does, C99 definitely does > And not all literal strings are 'static' as my code demonstrated. String literals are defined with static storage duration by definition. C99 6.4.5.5 The multibyte character sequence [string literal] is then used to initalize an array of static storage duration and length just sufficient to contain the sequence. Where static storage duration is defined in 6.2.4.3 Its lifetime is the entire execution of the program and its stored value is initalized only once, prior to program startup. So it seems quite valid (as you probably know anyway it will be put in some read only section which isn't going to go away). But the code in question will have an interesting alternative property that it will confuse every single programmer who looks at the code for the rest of eternity. -i
signature.asc
Description: Digital signature
-- SLUG - Sydney Linux User's Group Mailing List - http://slug.org.au/ Subscription info and FAQs: http://slug.org.au/faq/mailinglists.html
