🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #12511

C decrement / increment

#12511
From: [EdGe]
Date: Fri, 09 Nov 2001 02:19
48 lines
2237 bytes
Een aantal arrays worden ingesteld met een bepaalde waarde, waarna de
index met 1 verhoogd:

vb:
a[x] = c;
b[x] = d;
c[x++] = e;

in een worst-case geval moet de waarde van c[] bijgewerkt als
resultaat van een test
if(...) c[--x] = getal;

Je zou de conditie kunnen bevatten met if- else, maar volgende vind ik
altijd vies om later nog te zien (de source is iets complexer in tests
e.d. dan hier voorgesteld):

if (...) c[x++] = e;
else c[x++] = getal;

Huidige vorm is:
c[x] = e;
if (...) c[x] = getal;
x++;
Wat niet bij snelle code reviews de indruk wekt dat x 2* opgehoogd
wordt.

In principe zou het ook correct zijn als pre-decrement en
post-increment samen gebruikt kunnen worden, maar mijn compiler
vertikt dat.  Omdat de uitzondering zelden voorkomt, zou dat in zeer
snelle code geresulteerd kunnen hebben:

if(...) c[--x++] =getal;

Dit kan natuurlijk ook:
if (...)
{
  x--;
  c[x++] = getal;
}
Maar het geeft veel accolades voor weinig code.  Persoonlijk vind ik
de --x++ vorm veel logischer.

In principe lijkt de --x++ correct vertaalbaar: vooraf je index terug
verlagen, waarde aanpassen en index terug verhogen.  Ik verlies tijd
bij TRUE, maar wn er bij FALSE, in 99% van de mogelijkheden.

Weet er iemand of zoiets legale C hoort te zijn, of is er geen
workaround? (zodat ik huidige vorm moet behouden).
Technical Details
Message-ID: <3beb3ad1.46039351@news.pandora.be>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!newsfeed.direct.ca!look.ca!opentransit.net!newsfeeds.belnet.be!news.belnet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: fcea4,d5a3535abd40b2f0,start
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2001-11-08 18:19:05 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!newsfeed.direct.ca!look.ca!opentransit.net!newsfeeds.belnet.be!news.belnet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail
From: olx09654@online.be ([EdGe])
Newsgroups: be.comp.programming
Subject: C decrement / increment
Message-ID: <3beb3ad1.46039351@news.pandora.be>
X-Newsreader: Forte Free Agent 1.21/32.243
Lines: 49
Date: Fri, 09 Nov 2001 02:19:03 GMT
NNTP-Posting-Host: 213.224.217.19
X-Complaints-To: abuse@pandora.be
X-Trace: afrodite.telenet-ops.be 1005272343 213.224.217.19 (Fri, 09 Nov 2001 03:19:03 MET)
NNTP-Posting-Date: Fri, 09 Nov 2001 03:19:03 MET
Organization: Telenet Internet