🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: nl.comp.programmeren
Article #249

Re: Lijnen tellen van een project

#249
From: moi
Date: Wed, 26 Jan 2005 23:37
81 lines
4680 bytes
John Bokma wrote:
> moi wrote:

> 
> Eens, een truuk om fouten op te vangen die je normaal met de compiler
> hoort te zien. 
> 

Eens. eens. Ooit.
't is gewoon defensief. Net als overmaat () haakjes.

>>Het voordeel van de switch is, dat ie makkelijk is, omdat iedereen
>>hem onmiddelijk herkent. Bovendien *weet* iedereen dat er meer-dan 1 
>>cases kunnen zijn (itt if/else, waarbij er altijd precies twee opties 
>>zijn) 
> 
> Bij langere zaken, in Perl, (maar ook in C hoor) gebruik ik een hash
> table ipv. een lange switch. (Switch, Perl heeft geen switch, maar
> gelukkig kan je op veel manieren er een maken, of je gebruikt de Switch
> module :-) ). 
> 

Het eigenlijke onderwerp is "human readability", IMHO.
er is een continuum tussen ja/nee, multiple choice, en "open vragen".
Daartussen zijn allerlei gradaties mogelijk. Daarvoor moet de
schrijver verstandige keuzes maken. Belangrijk voor de keuze is het
overbrengen van de bedoeling.
in C is de keuze makkelijk: 1,2,veel.
veel is dus altijd lastig, dus switch(){} , dus lastig.

Er zijn twee soorten "veel": makkelijk_veel en moeilijk_veel.

Moeilijk_veel wil meestal zeggen dat de "switch" heel veel losliggende
cases kent ("sparse"), die dus ook nog in clusters optreden
(voorbeeld: [a-zA-Z] [0-9] [+-@_] [ \t] , etc. Of nog erger: 
instruktiesets!)
Er zijn twee strategieen: een extra laag van abstraktie
(isalnum() etc), of data_als_data_behandelen.

Voor dat laatste geval heeft perl (terecht) associatieve arrays,
die C programmeurs node moeten missen 8-)
[ik kan geen perl, trouwens, maar ik hoop, dat ik
-op een onbewoond eiland, met alleen maar de code, en heel veel tijd
om te lezen, de bedoeling van de programmeur, en ook nog
de wetten van perl zou kunnen doorgronden ]

>>
>>while (cp = fgets(fp, buff, sizeof buff)) {}
> 
> 
> Dit soort dingen kunnen fout gaan als cp zowel NULL als 0 kan worden,
> vzviw. 
> 

Hier moet ik je corrigeren: return type is char*.
Zelfs als het int zou zijn, zou de test syntacties valide zijn.
Indien geen prototype_in_scope zou de compiler moeten klagen.
[wederom  defensief, dus ...]


>>>  unsigned int uiLen;
>>>  int i;
>>
>>Variabelenamen om te HuiLen ....
> 
> 
> Yup, Hungarian zou verboden moeten worden :-D.

Bij nader inzien bleek het humor.
[meestal als je iets niet snapt is het kunst. Of humor!]
Hongaars is ook defensief, BTW...

>>BTW leuk draadje, waar ging het over, eigenlijk ?
> 
> 
> Iets met afvallen?
> 

Ik moet U hier afvallen ;-)

AvK
Technical Details
Message-ID: <MrmdnaRgN4o_tGXcRVnyiQ@casema.nl>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!newsread.com!news-xfer.newsread.com!66.133.170.4.MISMATCH!news-feed01.roc.ny.frontiernet.net!nntp.frontiernet.net!nntp.giganews.com.MISMATCH!border1.nntp.dca.giganews.com!nntp.giganews.com!local1.nntp.dca.giganews.com!nntp.casema.nl!news.casema.nl.POSTED!not-for-mail
References: <%XJId.2415$OZ2.252982@phobos.telenet-ops.be> <41f37378$0$140$e4fe514c@news.xs4all.nl> <ct2bdl$2p5$1@news1.zwoll1.ov.home.nl> <Xns95E88B1A63743castleamber@130.133.1.4> <41f55352$0$26219$18b6e80@news.wanadoo.nl> <Xns95E89B5FAF7C6castleamber@130.133.1.4> <41f587d8$0$11854$e4fe514c@news.xs4all.nl> <Xns95E8CE2C13FCcastleamber@130.133.1.4> <41f60627$0$11906$e4fe514c@news.xs4all.nl> <ct5e5s.104.1@news.isolution.nl> <Xns95E982F869770castleamber@130.133.1.4> <ct6veq.4f8.1@news.isolution.nl> <Xns95EA98A5B4Dcastleamber@130.133.1.4> <ct818b.198.1@news.isolution.nl> <hcWdnSBGdt9kZmrcRVnyvA@casema.nl> <Xns95EAA9F3B378Acastleamber@130.133.1.4>

Show Full Headers
Complete Article Headers
X-Google-Thread: 107324,ab34a8b99e320381
X-Google-Thread: fcea4,ab34a8b99e320381
X-Google-Attributes: gid107324,gidfcea4,public
X-Google-Language: DUTCH,ASCII-7-bit
Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!newsread.com!news-xfer.newsread.com!66.133.170.4.MISMATCH!news-feed01.roc.ny.frontiernet.net!nntp.frontiernet.net!nntp.giganews.com.MISMATCH!border1.nntp.dca.giganews.com!nntp.giganews.com!local1.nntp.dca.giganews.com!nntp.casema.nl!news.casema.nl.POSTED!not-for-mail
NNTP-Posting-Date: Wed, 26 Jan 2005 17:37:06 -0600
Date: Thu, 27 Jan 2005 00:37:05 +0100
From: moi <avk@localhost>
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040510
X-Accept-Language: en-us, en
MIME-Version: 1.0
Newsgroups: nl.comp.programmeren,be.comp.programming
Subject: Re: Lijnen tellen van een project
References: <%XJId.2415$OZ2.252982@phobos.telenet-ops.be> <41f37378$0$140$e4fe514c@news.xs4all.nl> <ct2bdl$2p5$1@news1.zwoll1.ov.home.nl> <Xns95E88B1A63743castleamber@130.133.1.4> <41f55352$0$26219$18b6e80@news.wanadoo.nl> <Xns95E89B5FAF7C6castleamber@130.133.1.4> <41f587d8$0$11854$e4fe514c@news.xs4all.nl> <Xns95E8CE2C13FCcastleamber@130.133.1.4> <41f60627$0$11906$e4fe514c@news.xs4all.nl> <ct5e5s.104.1@news.isolution.nl> <Xns95E982F869770castleamber@130.133.1.4> <ct6veq.4f8.1@news.isolution.nl> <Xns95EA98A5B4Dcastleamber@130.133.1.4> <ct818b.198.1@news.isolution.nl> <hcWdnSBGdt9kZmrcRVnyvA@casema.nl> <Xns95EAA9F3B378Acastleamber@130.133.1.4>
In-Reply-To: <Xns95EAA9F3B378Acastleamber@130.133.1.4>
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
Message-ID: <MrmdnaRgN4o_tGXcRVnyiQ@casema.nl>
Lines: 81
NNTP-Posting-Host: 83.83.6.100
X-Trace: sv3-PgLM9I8VMNOcwipInYylZOiOYN+xOuMKJSCsqwUN+bGdhSf/ld1Bev/xHnj5BdEfGI7ppSHVHj85mvi!FKDrKfJjSOTvjBzb83UIfeU7f9FWeL//SSGtf1DewVXwZKhYpALCtfnedPmLoJtkoSI=
X-Complaints-To: abuse@casema.nl
X-DMCA-Complaints-To: abuse@casema.nl
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.22