Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| Path | csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!gegeweb.org!de-l.enfer-du-nord.net!feeder1.enfer-du-nord.net!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail |
|---|---|
| From | Dr Nick <3-nospam@temporary-address.org.uk> |
| Newsgroups | comp.lang.c |
| Subject | Re: int vs. unsigned int vs. size_t |
| Date | Sun, 01 May 2011 14:16:34 +0100 |
| Lines | 37 |
| Message-ID | <87tydev9vx.fsf@temporary-address.org.uk> (permalink) |
| References | <ipgasf$1q5b$1@adenine.netfront.net> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=us-ascii |
| X-Trace | individual.net hJmtKUSRLQ+a0Yjcru8SBQR2CqanHk6Iy5LJUxH0rbPVypsgnU |
| Cancel-Lock | sha1:3P+biLMuNBBJamJ8+7xDXy/IbJY= sha1:BEzOYNmUvIWoMvTxlapOSNvroG4= |
| User-Agent | Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) |
| Xref | x330-a1.tempe.blueboxinc.net comp.lang.c:3102 |
Show key headers only | View raw
Steve Keller <keller@no.invalid> writes:
> This is a style question. To iterate through an array I often use
> code similar to the following:
>
> #define ASIZE(a) (sizeof(a) / sizeof((a)[0])
> int a[] = { ... };
>
> void foo(void)
> {
> int i;
> for (i = 0; i < ASIZE(a); i++)
> /* do something with a[i]. */
> }
>
> With all warnings enabled, gcc will warn about a comparison between
> signed and unsigned integer types, because sizeof() yields a size_t
> which is unsigned. To eliminate that warning I could use unsigned int
> or size_t for the variable i. But IMO int feels most natural and
> size_t might have unwanted overhead, if it is a large integer type and
> I know that the array size will be very small (i.e. less than INT_MAX
> elements).
>
> So, what type for i do you prefer in cases like this?
I hit another issue with this a couple of days ago. If you /do/ use an
unsigned type for 'i', and the array has no items in it, and you use GCC
with -W you get:
warning: comparison is always false due to limited range of data type
With a cast of the result of the sizeof division, and a normal signed
int, you get no warnings.
I have to confess that this confuses me.
--
Online waterways route planner | http://canalplan.eu
Plan trips, see photos, check facilities | http://canalplan.org.uk
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
int vs. unsigned int vs. size_t Steve Keller <keller@no.invalid> - 2011-04-30 08:40 +0200
Re: int vs. unsigned int vs. size_t Tim Prince <tprince@computer.org> - 2011-04-30 09:27 -0700
Re: int vs. unsigned int vs. size_t Tim Prince <tprince@computer.org> - 2011-04-30 12:55 -0700
Re: int vs. unsigned int vs. size_t Ian Collins <ian-news@hotmail.com> - 2011-05-01 10:34 +1200
Re: int vs. unsigned int vs. size_t pozz <pozzugno@gmail.com> - 2011-04-30 19:33 +0200
Re: int vs. unsigned int vs. size_t Ian Collins <ian-news@hotmail.com> - 2011-05-01 09:03 +1200
Re: int vs. unsigned int vs. size_t Tim Prince <tprince@computer.org> - 2011-04-30 14:34 -0700
Re: int vs. unsigned int vs. size_t Ian Collins <ian-news@hotmail.com> - 2011-05-01 10:37 +1200
Re: int vs. unsigned int vs. size_t Datesfat Chicks <datesfat.chicks@gmail.com> - 2011-04-30 19:41 -0400
Re: int vs. unsigned int vs. size_t Keith Thompson <kst-u@mib.org> - 2011-04-30 17:46 -0700
Re: int vs. unsigned int vs. size_t Datesfat Chicks <datesfat.chicks@gmail.com> - 2011-05-01 21:27 -0400
Re: int vs. unsigned int vs. size_t Malcolm McLean <malcolm.mclean5@btinternet.com> - 2011-04-30 22:23 -0700
Re: int vs. unsigned int vs. size_t Dr Nick <3-nospam@temporary-address.org.uk> - 2011-05-01 14:16 +0100
Re: int vs. unsigned int vs. size_t Barry Schwarz <schwarzb@dqel.com> - 2011-05-01 10:31 -0700
Re: int vs. unsigned int vs. size_t Keith Thompson <kst-u@mib.org> - 2011-05-01 12:25 -0700
Re: int vs. unsigned int vs. size_t James Kuyper <jameskuyper@verizon.net> - 2011-05-01 20:00 -0400
Re: int vs. unsigned int vs. size_t Tim Rentsch <txr@alumni.caltech.edu> - 2011-05-02 10:17 -0700
Re: int vs. unsigned int vs. size_t Dr Nick <3-nospam@temporary-address.org.uk> - 2011-05-02 08:37 +0100
Re: int vs. unsigned int vs. size_t ImpalerCore <jadill33@gmail.com> - 2011-05-03 06:02 -0700
Re: int vs. unsigned int vs. size_t Peter Nilsson <airia@acay.com.au> - 2011-05-03 15:55 -0700
Re: int vs. unsigned int vs. size_t Luca Forlizzi <luca.forlizzi@gmail.com> - 2011-05-05 02:38 -0700
Re: int vs. unsigned int vs. size_t ImpalerCore <jadill33@gmail.com> - 2011-05-05 06:37 -0700
Re: int vs. unsigned int vs. size_t Angel <angel+news@spamcop.net> - 2011-05-05 16:10 +0000
Re: int vs. unsigned int vs. size_t Malcolm McLean <malcolm.mclean5@btinternet.com> - 2011-05-05 09:35 -0700
Re: int vs. unsigned int vs. size_t Keith Thompson <kst-u@mib.org> - 2011-05-05 11:22 -0700
Re: int vs. unsigned int vs. size_t Peter Nilsson <airia@acay.com.au> - 2011-05-05 16:06 -0700
Re: int vs. unsigned int vs. size_t Michael Press <rubrum@pacbell.net> - 2011-05-06 02:32 -0700
Re: int vs. unsigned int vs. size_t Luca Forlizzi <luca.forlizzi@gmail.com> - 2011-05-07 02:42 -0700
csiph-web