Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C Programming > size limits for string literals

Reply
Thread Tools

size limits for string literals

 
 
copx
Guest
Posts: n/a
 
      03-25-2008
Do the standards say anything about size limits for string literals (min
size, max size)? I want to know this to make sure that my code is portable.
The program in question is ANSI C89, but I would also be interested in
whether or not ISO C99 changed the limits (if any exist).








 
Reply With Quote
 
 
 
 
Richard Bos
Guest
Posts: n/a
 
      03-25-2008
"copx" <(E-Mail Removed)> wrote:

> Do the standards say anything about size limits for string literals (min
> size, max size)? I want to know this to make sure that my code is portable.
> The program in question is ANSI C89, but I would also be interested in
> whether or not ISO C99 changed the limits (if any exist).


Minima, of course not; an empty string is valid in any language. The
notional limit on the size of a string literal in The One Program (and
see discussions of that program in this newsgroup over the years to know
why all these limits are always slightly misleading) is 509 characters
in C89, and 4095 in C99. Both of these are valid for normal and wide
strings, and _after_ concatenation (so you can't get around them with a
trick like "almost_too_long_string" "another_long_string").

Richard
 
Reply With Quote
 
 
 
 
Richard Heathfield
Guest
Posts: n/a
 
      03-25-2008
copx said:

> Do the standards say anything about size limits for string literals (min
> size, max size)?


Clearly, the minimum size is 1 (because sizeof "" is 1).

The maximum size of a string literal or wide string literal (after
concatenation, e.g. from "foo" "bar" to "foobar") that an implementation
*must* support is 509 in C90. This has been increased to 4095 in C99.

So if all your string literals are shorter than that, you will not break
anything. If you make them longer, you're relying on your implementation
being nice to you.

<snip>

--
Richard Heathfield <http://www.cpax.org.uk>
Email: -http://www. +rjh@
Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
"Usenet is a strange place" - dmr 29 July 1999
 
Reply With Quote
 
Walter Roberson
Guest
Posts: n/a
 
      03-25-2008
In article <(E-Mail Removed)4all.nl>,
Richard Bos <(E-Mail Removed)> wrote:

>Minima, of course not; an empty string is valid in any language.


I believe I've worked with some languages which did not support
empty strings, but it has been long enough since then that I could
not name any specifics.
--
"What we have to do is to be forever curiously testing new
opinions and courting new impressions." -- Walter Pater
 
Reply With Quote
 
CBFalconer
Guest
Posts: n/a
 
      03-26-2008
copx wrote:
>
> Do the standards say anything about size limits for string literals (min
> size, max size)? I want to know this to make sure that my code is portable.
> The program in question is ANSI C89, but I would also be interested in
> whether or not ISO C99 changed the limits (if any exist).


Yes they do. I believe the C89/C90/C95 limit is roughly 510 bytes,
and that C99 expanded it to roughly 1020 bytes. Look in the C
standard.

Some useful references about C:
<http://www.ungerhu.com/jxh/clc.welcome.txt>
<http://c-faq.com/> (C-faq)
<http://benpfaff.org/writings/clc/off-topic.html>
<http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf> (C99)
<http://cbfalconer.home.att.net/download/n869_txt.bz2> (C99, txt)
<http://www.dinkumware.com/c99.aspx> (C-library}
<http://gcc.gnu.org/onlinedocs/> (GNU docs)
<http://clc-wiki.net/wiki/C_community:comp.lang.c:Introduction>

--
[mail]: Chuck F (cbfalconer at maineline dot net)
[page]: <http://cbfalconer.home.att.net>
Try the download section.



--
Posted via a free Usenet account from http://www.teranews.com

 
Reply With Quote
 
copx
Guest
Posts: n/a
 
      03-26-2008

"copx" <(E-Mail Removed)> schrieb im Newsbeitrag
news:fsb6t9$ljl$(E-Mail Removed)...
> Do the standards say anything about size limits for string literals (min
> size, max size)?

[snip]

Thanks everyone!


 
Reply With Quote
 
Richard Heathfield
Guest
Posts: n/a
 
      03-26-2008
CBFalconer said:

> copx wrote:
>>
>> Do the standards say anything about size limits for string literals (min
>> size, max size)? I want to know this to make sure that my code is
>> portable. The program in question is ANSI C89, but I would also be
>> interested in whether or not ISO C99 changed the limits (if any exist).

>
> Yes they do. I believe the C89/C90/C95 limit is roughly 510 bytes,


509 - not so far off...

> and that C99 expanded it to roughly 1020 bytes.


....but I don't think 4095 can be plausibly called "roughly 1020".

--
Richard Heathfield <http://www.cpax.org.uk>
Email: -http://www. +rjh@
Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
"Usenet is a strange place" - dmr 29 July 1999
 
Reply With Quote
 
CBFalconer
Guest
Posts: n/a
 
      03-26-2008
Richard Heathfield wrote:
> CBFalconer said:
>> copx wrote:
>>>
>>> Do the standards say anything about size limits for string
>>> literals (min size, max size)? I want to know this to make sure
>>> that my code is portable. The program in question is ANSI C89,
>>> but I would also be interested in whether or not ISO C99 changed
>>> the limits (if any exist).

>>
>> Yes they do. I believe the C89/C90/C95 limit is roughly 510 bytes,

>
> 509 - not so far off...
>
>> and that C99 expanded it to roughly 1020 bytes.

>
> ...but I don't think 4095 can be plausibly called "roughly 1020".


True. However, if we express the values with logarithms, it is
only an error by a factor of 2. Trivial.

--
[mail]: Chuck F (cbfalconer at maineline dot net)
[page]: <http://cbfalconer.home.att.net>
Try the download section.



--
Posted via a free Usenet account from http://www.teranews.com

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Java: byte literals and short literals John Goche Java 8 01-17-2006 11:12 PM
Size and concurrency limits on Jet 4.0 dB engine? Joe Van Meer ASP .Net 2 05-05-2004 09:18 PM
making literals be a stdint size phil-news-nospam@ipal.net C Programming 8 09-05-2003 12:36 AM
Re: J2ME jar size limits Darryl L. Pierce Java 0 08-05-2003 01:25 PM
Re: J2ME jar size limits Andreas Rueckert Java 2 08-04-2003 08:44 PM



Advertisments