Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | Keith Thompson <kst-u@mib.org> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: What's new in C? |
| Date | 2012-12-08 12:59 -0800 |
| Organization | None to speak of |
| Message-ID | <lnhanwntum.fsf@nuthaus.mib.org> (permalink) |
| References | (6 earlier) <nhHws.1049820$Ak.818313@fx24.am4> <slrnkc6mr9.1jc.grahn+nntp@frailea.sa.invalid> <64Mws.748715$Bz2.563356@fx11.am4> <aihiijFmkj3U1@mid.individual.net> <bbNws.466957$Wc4.40529@fx10.am4> |
"BartC" <bc@freeuk.com> writes:
> "Ian Collins" <ian-news@hotmail.com> wrote in message
> news:aihiijFmkj3U1@mid.individual.net...
>> BartC wrote:
>>> For example, a 3-deep nested for-loop all using 'i' as the index
>>> variable!
>>
>> You can do that in C89.
>
> Do you have an example? That is meaningful I mean.
>
> Although nothing is stopping you anyway from using the same index variable,
> because they are all the same variable, it's going to cause difficulties, so
> it doesn't happen.
What do you mean by "they are all the same variable"?
Using C99 syntax:
for (int i = 0; i < 100; i ++) {
for (int i = 0; i < 100; i ++) {
// ...
}
}
The outer and inner "i" are two distinct objects (that happen to
have the same name). If you say they're the same variable, then
you're using a very different definition of "variable" than I do.
> But with mixed declarations it will work, because all the 'i's are distinct.
> However, it's just confusing
>
> (What *is* a good idea, I think, is to just auto-declare for-loop variables
> anyway. Then the question of where to declare them is eliminated!)
By "auto-declare", are you referring to the new-in-C99 feature I just
demonstrated? I wouldn't call that "auto-declaring" (unless you're
referring to automatic storage duration, but I don't think that's what
you mean). You still need a declaration; the language just permits it
to be in the header of the for-loop.
Note that if the body of the loop doesn't need to refer to the variable,
once could argue that using the same name for both loop variables is
sensible. (I'd still want to use distinct names.)
Some languages do provide a syntax to execute a loop N times without
creating a variable that gives you the current iteration number. C's
for-loop provides capabilities far beyond a simple counted loop, so it
wouldn't make too much sense to add such a special case. I suppose the
language could have had something like:
repeat(100) {
/* ... */
}
but that's probably not sufficiently useful to make it a language
feature.
>> If a function is long enough for this to be a problem, you have bigger
>> things to worry about than mixed declarations and code.
>
> And if a function is short, there's less to gain from localising all the
> declarations.
What you gain is the ability to initialize a variable using information
that's not available at the top of the function (or block). Do you
really not find that useful?
--
Keith Thompson (The_Other_Keith) kst-u@mib.org <http://www.ghoti.net/~kst>
Will write code for food.
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
What's new in C? Cal Dershowitz <cal@example.invalid> - 2012-11-28 19:41 -0700
Re: What's new in C? Keith Thompson <kst-u@mib.org> - 2012-11-28 19:15 -0800
Re: What's new in C? Cal Dershowitz <cal@example.invalid> - 2012-12-06 02:43 -0700
Re: What's new in C? James Kuyper <jameskuyper@verizon.net> - 2012-12-06 07:45 -0500
Re: What's new in C? Noob <root@127.0.0.1> - 2012-11-29 10:36 +0100
Re: What's new in C? Weland <weland@sdf.lonestar.org> - 2012-11-29 10:17 +0000
Re: What's new in C? Cal Dershowitz <cal@example.invalid> - 2012-12-04 01:45 -0700
Re: What's new in C? Weland <weland@sdf.lonestar.org> - 2012-11-29 09:48 +0000
Re: What's new in C? David Brown <david@westcontrol.removethisbit.com> - 2012-11-29 13:50 +0100
Re: What's new in C? Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-11-29 05:55 -0800
Re: What's new in C? Les Cargill <lcargill99@comcast.com> - 2012-11-29 12:48 -0600
Re: What's new in C? Rui Maciel <rui.maciel@gmail.com> - 2012-11-30 10:46 +0000
Re: What's new in C? Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-11-30 05:31 -0800
Re: What's new in C? "BartC" <bc@freeuk.com> - 2012-11-30 14:22 +0000
Re: What's new in C? Rui Maciel <rui.maciel@gmail.com> - 2012-11-30 15:04 +0000
Re: What's new in C? glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2012-11-30 16:41 +0000
Re: What's new in C? James Kuyper <jameskuyper@verizon.net> - 2012-11-30 11:49 -0500
Re: What's new in C? Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-11-30 10:12 -0800
Re: What's new in C? Keith Thompson <kst-u@mib.org> - 2012-11-30 11:12 -0800
Re: What's new in C? glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2012-11-30 22:26 +0000
Re: What's new in C? "BartC" <bc@freeuk.com> - 2012-11-30 22:36 +0000
Re: What's new in C? glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2012-11-30 23:27 +0000
Re: What's new in C? Cal Dershowitz <cal@example.invalid> - 2012-12-04 01:39 -0700
Re: What's new in C? Keith Thompson <kst-u@mib.org> - 2012-12-04 00:43 -0800
Re: What's new in C? Cal Dershowitz <cal@example.invalid> - 2012-12-04 03:14 -0700
Re: What's new in C? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-12-04 12:50 +0000
Re: What's new in C? Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-12-04 05:54 -0800
Re: What's new in C? glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2012-12-04 20:51 +0000
Re: What's new in C? Eric Sosman <esosman@comcast-dot-net.invalid> - 2012-12-04 16:09 -0500
Re: What's new in C? James Kuyper <jameskuyper@verizon.net> - 2012-12-04 16:19 -0500
Re: What's new in C? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-12-04 21:45 +0000
Re: What's new in C? glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2012-12-05 01:13 +0000
Re: What's new in C? James Kuyper <jameskuyper@verizon.net> - 2012-12-04 20:36 -0500
Re: What's new in C? Robert Wessel <robertwessel2@yahoo.com> - 2012-12-04 20:26 -0600
Re: What's new in C? Keith Thompson <kst-u@mib.org> - 2012-12-04 18:48 -0800
Re: What's new in C? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-12-05 02:57 +0000
Re: What's new in C? "BartC" <bc@freeuk.com> - 2012-12-05 01:42 +0000
Re: What's new in C? Cal Dershowitz <cal@example.invalid> - 2012-12-06 02:06 -0700
Re: What's new in C? James Kuyper <jameskuyper@verizon.net> - 2012-12-06 07:50 -0500
Re: What's new in C? JohnF <john@please.see.sig.for.email.com> - 2012-12-06 13:46 +0000
Re: What's new in C? James Kuyper <jameskuyper@verizon.net> - 2012-12-06 09:39 -0500
Re: What's new in C? Eric Sosman <esosman@comcast-dot-net.invalid> - 2012-11-30 15:52 -0500
Re: What's new in C? Cal Dershowitz <cal@example.invalid> - 2012-12-04 01:53 -0700
Re: What's new in C? Eric Sosman <esosman@comcast-dot-net.invalid> - 2012-12-04 08:16 -0500
Re: What's new in C? glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2012-12-04 21:18 +0000
Re: What's new in C? Eric Sosman <esosman@comcast-dot-net.invalid> - 2012-12-04 18:04 -0500
Re: What's new in C? glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2012-12-05 01:19 +0000
Re: What's new in C? Eric Sosman <esosman@comcast-dot-net.invalid> - 2012-12-04 21:05 -0500
Re: What's new in C? Noob <root@127.0.0.1> - 2012-12-05 16:45 +0100
Re: What's new in C? Cal Dershowitz <cal@example.invalid> - 2012-12-06 01:45 -0700
Re: What's new in C? James Kuyper <jameskuyper@verizon.net> - 2012-12-06 08:12 -0500
Re: What's new in C? glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2012-12-06 21:13 +0000
Re: What's new in C? Eric Sosman <esosman@comcast-dot-net.invalid> - 2012-12-06 09:15 -0500
Re: What's new in C? Cal Dershowitz <cal@example.invalid> - 2012-12-12 18:28 -0700
Re: What's new in C? Keith Thompson <kst-u@mib.org> - 2012-11-30 11:22 -0800
Re: What's new in C? Cal Dershowitz <cal@example.invalid> - 2012-12-04 03:04 -0700
Re: What's new in C? Rui Maciel <rui.maciel@gmail.com> - 2012-11-29 18:19 +0000
Re: What's new in C? Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-11-29 11:41 -0800
Re: What's new in C? Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-11-30 20:50 +0000
Re: What's new in C? Jens Gustedt <jens.gustedt@loria.fr> - 2012-11-30 23:35 +0100
Re: What's new in C? Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-12-05 03:26 +0000
Re: What's new in C? gwowen <gwowen@gmail.com> - 2012-12-05 23:49 -0800
Re: What's new in C? Cal Dershowitz <cal@example.invalid> - 2012-12-06 01:49 -0700
Re: What's new in C? Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-12-08 07:55 +0000
Re: What's new in C? "BartC" <bc@freeuk.com> - 2012-12-08 13:29 +0000
Re: What's new in C? Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-12-08 15:23 +0000
Re: What's new in C? Martin Shobe <martin.shobe@yahoo.com> - 2012-12-08 17:46 +0000
Re: What's new in C? Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-12-08 10:45 -0800
Re: What's new in C? Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-12-08 19:32 +0000
Re: What's new in C? "BartC" <bc@freeuk.com> - 2012-12-08 18:55 +0000
Re: What's new in C? Ian Collins <ian-news@hotmail.com> - 2012-12-09 08:26 +1300
Re: What's new in C? "BartC" <bc@freeuk.com> - 2012-12-08 20:12 +0000
Re: What's new in C? Ian Collins <ian-news@hotmail.com> - 2012-12-09 09:18 +1300
Re: What's new in C? "BartC" <bc@freeuk.com> - 2012-12-08 21:21 +0000
Re: What's new in C? Ian Collins <ian-news@hotmail.com> - 2012-12-09 10:27 +1300
Re: What's new in C? Keith Thompson <kst-u@mib.org> - 2012-12-08 13:36 -0800
Re: What's new in C? Keith Thompson <kst-u@mib.org> - 2012-12-08 12:59 -0800
Re: What's new in C? "BartC" <bc@freeuk.com> - 2012-12-08 22:10 +0000
Re: What's new in C? Keith Thompson <kst-u@mib.org> - 2012-12-08 16:15 -0800
Re: What's new in C? Ian Collins <ian-news@hotmail.com> - 2012-12-09 14:23 +1300
Re: What's new in C? Ian Collins <ian-news@hotmail.com> - 2012-12-09 14:20 +1300
Re: What's new in C? Keith Thompson <kst-u@mib.org> - 2012-12-08 11:32 -0800
Re: What's new in C? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-12-09 02:52 +0000
Re: What's new in C? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-12-09 02:53 +0000
Re: What's new in C? Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-12-08 20:08 +0000
Re: What's new in C? "BartC" <bc@freeuk.com> - 2012-12-08 20:25 +0000
csiph-web