Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | James Kuyper <jameskuyper@verizon.net> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: Limitations and workarounds to expressions defining size of an array |
| Date | 2012-09-05 07:33 -0400 |
| Organization | A noiseless patient Spider |
| Message-ID | <k27dar$k1o$1@dont-email.me> (permalink) |
| References | <504636db$0$1709$426a74cc@news.free.fr> <504643A0.1050007@verizon.net> <504705ac$0$1716$426a74cc@news.free.fr> |
On 09/05/2012 03:56 AM, Francois Grieu wrote: ... > I was hoping for > // select temporary type > #include <limits.h> > #ifdef ULLONG_MAX > typedef unsigned long long uw; > #else > typedef unsigned long uw; > #endif > #define UTMP static const uw > > #define EXPECTED 15000 > UTMP kExpected = EXPECTED; > UTMP kRoot2 = 12*12*kExpected; > // we want ceil(sqrt(12*12*kExpected)), use Newton/Rapson > UTMP kExTmp0 = (uw)3<<(kRoot2>>30 > 0 ? 15 : > kRoot2>>24 > 0 ? 12 : > kRoot2>>18 > 0 ? 9 : > kRoot2>>12 > 0 ? 6 : 3); > UTMP kExTmp1 = (kExTmp0+kRoot2/kExTmp0)/2; > UTMP kExTmp2 = (kExTmp1+kRoot2/kExTmp1)/2; > UTMP kExTmp3 = (kExTmp2+kRoot2/kExTmp2)/2; > UTMP kExTmp4 = (kExTmp3+kRoot2/kExTmp3)/2; > UTMP kExTmp5 = (kExTmp4+kRoot2/kExTmp4)/2; > UTMP kExTmp6 = (kExTmp5+kRoot2/kExTmp5)/2; > UTMP kExTmp7 = (kExTmp6+kRoot2/kExTmp6)/2; > UTMP kExTmp8 = (kExTmp7+kRoot2/kExTmp7)/2; > UTMP kExTmp9 = (kExTmp8+kRoot2/kExTmp8)/2; > UTMP kExTmpA = (kExTmp9+kRoot2/kExTmp9)/2; > UTMP kExTmpB = (kExTmpA+kRoot2/kExTmpA)/2; > UTMP kExTmpC = (kExTmpB+kRoot2/kExTmpB)/2; > UTMP kRoot = kExTmpC+(kExTmpB>kExTmpC?1:0); > > struct foo * bar[kExpected+kRoot]; > > > This is not valid C99 (the definition of kRoot2 is invalid); > is that valid in C11? <ot>Note: it seem valid in C++</ot>. Ah - I see the point you're raising now. Sorry for missing it in your previous message - I didn't notice your use of 'static' in the #definition of UTMP. Initializers for an object of static storage duration must be constant expressions. In C++, a const variable initialized with a constant expression can itself be used as a constant expression, but in C it is not allowed. You'd have to re-write this as a single constant expression, and you'll have to be careful to avoid running into line length limitations if you do so. I haven't checked to be sure, but you might have settle for fewer iterations. If you remove the 'static' and define these inside a function, there should be no problem except with the definition of bar itself, which requires VLA support. Of course, if you can use a VLA, you wouldn't need to use such a round-about method to do this, you could simply calculate the sqrt() directly. -- James Kuyper
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Limitations and workarounds to expressions defining size of an array Francois Grieu <fgrieu@gmail.com> - 2012-09-04 19:14 +0200
Re: Limitations and workarounds to expressions defining size of an array James Kuyper <jameskuyper@verizon.net> - 2012-09-04 14:08 -0400
Re: Limitations and workarounds to expressions defining size of an array Francois Grieu <fgrieu@gmail.com> - 2012-09-05 09:56 +0200
Re: Limitations and workarounds to expressions defining size of an array James Kuyper <jameskuyper@verizon.net> - 2012-09-05 07:33 -0400
Re: Limitations and workarounds to expressions defining size of an array Francois Grieu <fgrieu@gmail.com> - 2012-09-05 23:39 +0200
Re: Limitations and workarounds to expressions defining size of an array Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-09-05 18:11 -0400
Re: Limitations and workarounds to expressions defining size of an array James Kuyper <jameskuyper@verizon.net> - 2012-09-05 07:17 -0400
Re: Limitations and workarounds to expressions defining size of an array Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-09-04 19:18 +0100
Re: Limitations and workarounds to expressions defining size of an array Kaz Kylheku <kaz@kylheku.com> - 2012-09-04 18:41 +0000
Re: Limitations and workarounds to expressions defining size of an array "BartC" <bc@freeuk.com> - 2012-09-04 20:22 +0100
Re: Limitations and workarounds to expressions defining size of an array Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-09-04 17:07 -0400
Re: Limitations and workarounds to expressions defining size of an array James Kuyper <jameskuyper@verizon.net> - 2012-09-04 17:25 -0400
Re: Limitations and workarounds to expressions defining size of an array Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-09-04 18:24 -0400
Re: Limitations and workarounds to expressions defining size of an array Keith Thompson <kst-u@mib.org> - 2012-09-04 17:29 -0700
Re: Limitations and workarounds to expressions defining size of an array army1987 <army1987@ask-for-it.invalid> - 2012-09-04 21:26 +0000
Re: Limitations and workarounds to expressions defining size of an array army1987 <army1987@ask-for-it.invalid> - 2012-09-04 21:31 +0000
Re: Limitations and workarounds to expressions defining size of an array James Kuyper <jameskuyper@verizon.net> - 2012-09-04 17:41 -0400
Re: Limitations and workarounds to expressions defining size of an array army1987 <army1987@ask-for-it.invalid> - 2012-09-05 20:45 +0000
Re: Limitations and workarounds to expressions defining size of an array James Kuyper <jameskuyper@verizon.net> - 2012-09-05 17:23 -0400
Re: Limitations and workarounds to expressions defining size of an array army1987 <army1987@ask-for-it.invalid> - 2012-09-05 21:30 +0000
Re: Limitations and workarounds to expressions defining size of an array Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-09-05 23:04 +0100
Re: Limitations and workarounds to expressions defining size of an array Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-09-05 18:17 -0400
Re: Limitations and workarounds to expressions defining size of an array James Kuyper <jameskuyper@verizon.net> - 2012-09-05 18:29 -0400
Re: Limitations and workarounds to expressions defining size of an array Kaz Kylheku <kaz@kylheku.com> - 2012-09-04 21:44 +0000
Re: Limitations and workarounds to expressions defining size of an array Kaz Kylheku <kaz@kylheku.com> - 2012-09-04 21:39 +0000
Re: Limitations and workarounds to expressions defining size of an array "BartC" <bc@freeuk.com> - 2012-09-04 22:58 +0100
Re: Limitations and workarounds to expressions defining size of an array Kaz Kylheku <kaz@kylheku.com> - 2012-09-04 22:12 +0000
Re: Limitations and workarounds to expressions defining size of an array Lowell Gilbert <lgusenet@be-well.ilk.org> - 2012-09-04 18:55 -0400
Re: Limitations and workarounds to expressions defining size of an array Keith Thompson <kst-u@mib.org> - 2012-09-04 16:51 -0700
Re: Limitations and workarounds to expressions defining size of an array Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-09-04 20:58 -0400
Re: Limitations and workarounds to expressions defining size of an array Francois Grieu <fgrieu@gmail.com> - 2012-09-05 10:04 +0200
Re: Limitations and workarounds to expressions defining size of an array Tim Rentsch <txr@alumni.caltech.edu> - 2012-09-07 04:47 -0700
Re: Limitations and workarounds to expressions defining size of an array Keith Thompson <kst-u@mib.org> - 2012-09-07 14:04 -0700
Re: Limitations and workarounds to expressions defining size of an array Casey Carter <casey_at_carter_dot_net@nospam.invalid> - 2012-09-07 16:40 -0500
Re: Limitations and workarounds to expressions defining size of an array Tim Rentsch <txr@alumni.caltech.edu> - 2012-09-07 19:54 -0700
Re: Limitations and workarounds to expressions defining size of an array Keith Thompson <kst-u@mib.org> - 2012-09-08 14:15 -0700
Re: Limitations and workarounds to expressions defining size of an array lawrence.jones@siemens.com - 2012-09-17 12:09 -0400
Re: Limitations and workarounds to expressions defining size of an array Tim Rentsch <txr@alumni.caltech.edu> - 2012-09-07 04:53 -0700
Re: Limitations and workarounds to expressions defining size of an array "BartC" <bc@freeuk.com> - 2012-09-07 13:07 +0100
Re: Limitations and workarounds to expressions defining size of an array Keith Thompson <kst-u@mib.org> - 2012-09-07 14:08 -0700
Re: Limitations and workarounds to expressions defining size of an array Tim Rentsch <txr@alumni.caltech.edu> - 2012-09-07 19:41 -0700
Re: Limitations and workarounds to expressions defining size of an array "BartC" <bc@freeuk.com> - 2012-09-04 20:26 +0100
Re: Limitations and workarounds to expressions defining size of an array Barry Schwarz <schwarzb@dqel.com> - 2012-09-04 14:14 -0700
Re: Limitations and workarounds to expressions defining size of an array Tim Rentsch <txr@alumni.caltech.edu> - 2012-09-07 04:41 -0700
Re: Limitations and workarounds to expressions defining size of an array army1987 <army1987@ask-for-it.invalid> - 2012-09-07 13:32 +0000
csiph-web