Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | Kaz Kylheku <kaz@kylheku.com> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: the loop control |
| Date | 2011-10-31 19:23 +0000 |
| Organization | A noiseless patient Spider |
| Message-ID | <20111031151255.736@kylheku.com> (permalink) |
| References | <j8hrok$3cq$1@reader1.panix.com> <20111029175230.259@kylheku.com> <j8meed$p0j$1@reader1.panix.com> |
On 2011-10-31, Joe keane <jgk@panix.com> wrote:
> In article <20111029175230.259@kylheku.com>,
> Kaz Kylheku <kaz@kylheku.com> wrote:
>>Firstly, you're neglecting to take advantage of parameters being
>>local variables.
>
> I don't like that "feature" of C.
This feature is found in other languages.
(defun lisp-function (arg)
(incf arg))
> It's harder to debug, it's harder to maintain.
This sort of statement is impossible to justify without a lot of
qualifications. Undoubtedly whenever you modify *any* variable, be it
a by-value argument or not, you can create bugs. (Just ask any proponent of
functional languages.)
The trick of destructively manipulating by-value arguemnts keeps
small and simple functions small and simple, where extra variables
might just create clutter.
Everything you add to the function, some maintainer will have to suspect was
done for a significant reason beyond mere style.
>>Do you need fool and foob to retain the values they had on entry into
>>the function?
>
> It helps to retain sanity.
N
> e.g.
>
> int f2(int len, struct foo *fob)
> {
> ...
>
> for (j = 0; j < len; j++)
> {
> fob->a = fq(...);
> fob++;
> }
>
> ...
>
> for (j = 0; j < len; j++)
> {
> fob->b = fr(...);
> fob++;
> }
>
> ...
> }
>
> Oops!
This function suggests to me that it is two functions combined into one.
Or, possibly, that the separate loop bodies can be combined into a single pass.
If there is no need for two passes, then the above code wastes my time
trying to confirming a suspicion that there have to be two passes,
because I respect the intelligence of the prior coder and assume he or
she did things for a good reason.
Thus if the following is a correct rewrite, then it is better:
for (j = 0; j < len; j++)
{
fob->a = fq(...);
fob->b = fr(...);
fob++;
}
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
the loop control jgk@panix.com (Joe keane) - 2011-10-29 21:38 +0000
Re: the loop control Ian Collins <ian-news@hotmail.com> - 2011-10-30 10:48 +1300
Re: the loop control Kaz Kylheku <kaz@kylheku.com> - 2011-10-29 22:10 +0000
Re: the loop control jgk@panix.com (Joe keane) - 2011-10-31 15:21 +0000
Re: the loop control James Kuyper <jameskuyper@verizon.net> - 2011-10-31 11:35 -0400
Re: the loop control jgharston <jgh@arcade.demon.co.uk> - 2011-10-31 10:27 -0700
Re: the loop control Seebs <usenet-nospam@seebs.net> - 2011-10-31 18:36 +0000
Re: the loop control Robert Wessel <robertwessel2@yahoo.com> - 2011-10-31 13:49 -0500
Re: the loop control Sjouke Burry <s@b> - 2011-10-31 18:49 +0000
Re: the loop control James Kuyper <jameskuyper@verizon.net> - 2011-10-31 15:07 -0400
Re: the loop control Keith Thompson <kst-u@mib.org> - 2011-10-31 13:56 -0700
Re: the loop control Seebs <usenet-nospam@seebs.net> - 2011-10-31 17:18 +0000
Re: the loop control Nick Keighley <nick_keighley_nospam@hotmail.com> - 2011-11-01 04:35 -0700
Re: the loop control Seebs <usenet-nospam@seebs.net> - 2011-11-01 21:44 +0000
Re: the loop control Nick Keighley <nick_keighley_nospam@hotmail.com> - 2011-11-02 01:16 -0700
Re: the loop control Kaz Kylheku <kaz@kylheku.com> - 2011-10-31 19:23 +0000
Re: the loop control jgk@panix.com (Joe keane) - 2011-11-02 04:47 +0000
Re: the loop control Phil Carmody <thefatphil_demunged@yahoo.co.uk> - 2011-10-31 23:07 +0200
Re: the loop control Ike Naar <ike@sverige.freeshell.org> - 2011-11-01 00:11 +0000
Re: the loop control James Kuyper <jameskuyper@verizon.net> - 2011-10-31 22:01 -0400
Re: the loop control Kaz Kylheku <kaz@kylheku.com> - 2011-11-01 02:51 +0000
Re: the loop control James Kuyper <jameskuyper@verizon.net> - 2011-11-01 07:23 -0400
Re: the loop control Ike Naar <ike@iceland.freeshell.org> - 2011-11-01 09:51 +0000
Re: the loop control pete <pfiland@mindspring.com> - 2011-11-01 05:34 -0500
Re: the loop control James Kuyper <jameskuyper@verizon.net> - 2011-11-01 07:30 -0400
Re: the loop control James Kuyper <jameskuyper@verizon.net> - 2011-11-01 07:35 -0400
Re: the loop control Hans Vlems <hvlems@freenet.de> - 2011-11-11 00:38 -0800
Re: the loop control jgk@panix.com (Joe keane) - 2011-11-02 03:36 +0000
Re: the loop control Ian Collins <ian-news@hotmail.com> - 2011-11-02 17:09 +1300
Re: the loop control Keith Thompson <kst-u@mib.org> - 2011-11-02 03:56 -0700
Re: the loop control Jorgen Grahn <grahn+nntp@snipabacken.se> - 2011-10-31 21:38 +0000
Re: the loop control Acid Washed China Blue Jeans <chine.bleu@yahoo.com> - 2011-10-29 19:31 -0700
Re: the loop control Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2011-10-29 23:11 -0600
Re: the loop control "Philip Lantz" <prl@canterey.us> - 2011-10-29 22:47 -0700
Re: the loop control jgk@panix.com (Joe keane) - 2011-10-31 16:36 +0000
Re: the loop control Kaz Kylheku <kaz@kylheku.com> - 2011-10-31 19:30 +0000
Re: the loop control blp@cs.stanford.edu (Ben Pfaff) - 2011-10-31 12:38 -0700
Re: the loop control James Kuyper <jameskuyper@verizon.net> - 2011-10-31 15:51 -0400
Re: the loop control blp@cs.stanford.edu (Ben Pfaff) - 2011-10-31 13:06 -0700
Re: the loop control Keith Thompson <kst-u@mib.org> - 2011-10-31 14:17 -0700
Re: the loop control Seebs <usenet-nospam@seebs.net> - 2011-11-01 21:44 +0000
Re: the loop control Phil Carmody <thefatphil_demunged@yahoo.co.uk> - 2011-10-31 23:30 +0200
Re: the loop control jgk@panix.com (Joe keane) - 2011-11-03 21:29 +0000
Re: the loop control James Kuyper <jameskuyper@verizon.net> - 2011-11-03 18:00 -0400
Re: the loop control Kaz Kylheku <kaz@kylheku.com> - 2011-11-04 00:43 +0000
Re: the loop control jgk@panix.com (Joe keane) - 2011-11-11 02:24 +0000
Re: the loop control Phil Carmody <thefatphil_demunged@yahoo.co.uk> - 2011-10-31 23:20 +0200
Re: the loop control pete <pfiland@mindspring.com> - 2011-10-31 18:01 -0500
Re: the loop control Phil Carmody <thefatphil_demunged@yahoo.co.uk> - 2011-11-02 01:20 +0200
Re: the loop control 88888 Dihedral <dihedral88888@googlemail.com> - 2011-11-02 01:25 -0700
csiph-web