Article View: nl.comp.programmeren
Article #354Re: Lijnen tellen van een project
From: Dr.Ruud
Date: Wed, 26 Jan 2005 21:39
Date: Wed, 26 Jan 2005 21:39
109 lines
4593 bytes
4593 bytes
Toen ik moi kietelde, kwam er dit uit:
> Dr.Ruud:
>> John Bokma:
>>> Dr.Ruud:
>>>> if (('F' == sex) || (('f' == sex) && (sex = 'F'))) do_female;
>>>> else if (('M' == sex) || (sex = 'M')) do_male;
>
> Mijn bezwaar hiertegen is, dat het veel-te-veel tokens zijn.
Het was een voorbeeld van hoe je zoiets niet doet. Bij een charset
waarin de 'F' of 'M' nul is, gaat het nog mis ook.
> switch(gender) {
> case 'm': gender = 'M';
> case 'M': do_gozert();
> break;
> case 'f': gender = 'F';
> case 'F': do_wijffie();
> break;
> default: do_teiltje("illegal gender: %x\n", gender);
> }
Dat lijkt (nadat ik er wat whitespace aan toe heb gevoegd)
wel op hoe ik het zelf wel doe.
Het voorbeeld wordt dan:
switch(sex) {
default: sex = 'M';
case 'M': do_male();
break;
case 'f': sex = 'F';
case 'F': do_female();
}
of zo:
switch(sex) {
case 'f': sex = 'F';
case 'F': do_female();
break;
default: sex = 'M';
case 'M': do_male();
}
Het blijft altijd verstandig om zo te coderen dat 'M' niet aan
sex wordt toegekend als sex al 'M' is; je weet immers niet of
dat extra acties tot gevolg heeft, zoals een refresh van een
window, of een update in een wereldwijd gerepliceerde database.
>> Je bent dan vast e1n van de velen die de "==" en "!=" niet echt als
>> symmetrische symbolen lezen. Ik zie veel liever een
>> if (NULL != lange-en-complexe-expressie)
>> dan andersom (en het liefst dus inclusief de onnodige "NULL !="),
>> want je weet meteen waarmee vergeleken wordt.
>
> Nee hoor. Ook hier kan je weer eea *weglaten*,
> [...]
> die "NULL !=" kan worden vervangen door "".
Dat stond er al, zie het woord "onnodige".
>> Ik legde het op aan beginnende C-programmeurs, dat scheelde een hoop
>> fouten en verdriet.
>
> Nee, dat is een illusie. je *kan* ze niks uitleggen.
Er stond "opleggen".
>> unsigned int uiLen;
>> int i;
> Variabelenamen om te HuiLen ....
En dat was de bedoeling.
>> for (i = 0; i++; i < uiLen) ...
> Dit zijn tikfouten (of denkfouten) die ze moeten
> leren herkennen. Als denkfout gaat het vanzelf over
> (of niet ...). Als tikfout istie lastig, omdat ie zeerzeerzeldzaam is.
> Te zeldzaam om je ertegen te wapenen, IMHO. Hij komt zowiezo tot
> uiting bij de 1e run, dus: geen probleem.
De tikfout zie ik even niet, maar ik ben ook best moe nu.
Of wacht, ik heb de test en de einde-loop-statement ver-
wisseld. Ik bedoelde:
for (i = 0; i < uiLen; i++) ...
en dat die i dan vanwege overflow naar negatief kan omklappen.
> BTW leuk draadje, waar ging het over, eigenlijk ?
Iets van 10 eurocent per regel code, geloof ik.
--
Affijn, Ruud ` - �
+ ` � *
� ` Jvr qvg yrrfg,
� = ` fgresg wbatre.
Technical Details
Message-ID:
<ct967g.4hc.1@news.isolution.nl>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!newshub.sdsu.edu!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!news.netcologne.de!newsfeed-fusi.netcologne.de!border2.nntp.ams.giganews.com!nntp.giganews.com!newsfeeder.wxs.nl!transit.news.xs4all.nl!post.news.xs4all.nl!not-for-mailReferences:
<%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>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
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!newshub.sdsu.edu!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!news.netcologne.de!newsfeed-fusi.netcologne.de!border2.nntp.ams.giganews.com!nntp.giganews.com!newsfeeder.wxs.nl!transit.news.xs4all.nl!post.news.xs4all.nl!not-for-mail
Message-ID: <ct967g.4hc.1@news.isolution.nl>
From: "Dr.Ruud" <rvtol+news@isolution.nl>
Newsgroups: nl.comp.programmeren,be.comp.programming
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>
Subject: Re: Lijnen tellen van een project
Date: Wed, 26 Jan 2005 22:39:11 +0100
Organization: Chaos rules.
X-Newsreader: WMDIYB
X-Archive-Me: please
Approved: yesterday
X-Face: &CQ$FIr!=+=w,8`0Q^Ug"1>F[(/op8->E;NQet`5fe$;=e*!Z5&REvp<~Tj|"Y[|8OcJ{w#z&mB7B:I)XO*%_|\]|YW$C>>$Q[9-#K~c$tQ^Mf0,wMo?h\C)TE>f
Lines: 111
NNTP-Posting-Host: 194.109.164.102
X-Trace: 1106775603 news.xs4all.nl 19185 [::ffff:194.109.164.102]:35148
X-Complaints-To: abuse@xs4all.nl