🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: nl.comp.programmeren
Article #354

Re: Lijnen tellen van een project

#354
From: Dr.Ruud
Date: Wed, 26 Jan 2005 21:39
109 lines
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-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>

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