🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: nl.comp.programmeren
Article #201

Re: Lijnen tellen van een project

#201
From: John Bokma
Date: Fri, 28 Jan 2005 17:09
58 lines
4007 bytes
Sjoerd A. Schreuder wrote:

> Ik ken C op dit gebied minder goed dan C++, maar in C++ wordt een zero
> omgezet in een pointer die als NULL pointer dient (C vereist dacht ik
> wel gewoon een zero, maar dat weet ik niet zeker). De C++ standaard
> doet zijn best om niet te zeggen dat dat adres 0 is en de optie open
> te laten daar b.v. 0xFFFFFFFF van te maken. Maar elke compiler die ik
> ken, representeert een NULL pointer door een pointer naar adres 0,
> en ik ken een heleboel code die fout zou gaan als dat niet het geval
> zou zijn (code die memset(), memzero() en zo gebruikt om een pointer
> te initialiseren). Maar een compiler mag dat dus anders doen!

Ja, ook dat kan ik mij herinneren, en ik herinner dat toen ik nogal veel 
C programmeerde ik altijd dingen deed als

if ( ptr == NULL ) { ... } etc.

Ik vind het ook leesbaarder (ik deed veel dingen met trees, graphs, en 
linked lists, en dan kan je het zelfs documentatie noemen :-D.

>> Zie boven. Ik bedoel dat ptr twee false waarden kan hebben. Indien
>> niet, dan gaat dat deel van mijn verhaal niet op.
> 
> Er is maar 1 false waarde (nl NULL), maar i.h.a. wordt de pointer
> naar adres 0 opgeofferd om die NULL waarde te representeren.

Ah, dus NULL is altijd "0", maar kan intern door de compiler anders 
gerepresenteerd worden. Dus intern kan die 0 0xffffffff zijn?

> Overigens is het best mogelijk om zo'n pointer te gebruiken in C.
> Je zult dan het geheugen op adres 0 proberen te benaderen, en als
> dat precies is wat je wilt (in een embedded device of zo),

Of in een systeem waar dat geen kwaad kan :-D.

>> Ander voorbeeld:
>> 
>> $speed ||= 5;         # use default
>> 
>> Probeer $speed nu maar eens op 0 te zetten.
> 
> Misschien is dat ook wel niet handig (maar dan zou ik if (speed < 1)
> o.i.d. verwachten).

Het komt nogal eens voor dat een programmeur er in stinkt. Ikzelf 
gebruik meestal iets als:

defined $speed or $speed = 5;

Ik lees dat zelf als: speed moet gedefinieerd zijn, of anders zet 'm op 
5.


-- 
John Bokma
                 Voorbeeldscripts in Perl: http://johnbokma.com/perl/
Ervaren Perl / Java programmeur beschikbaar:  http://castleamber.com/
Tevreden opdrachtgevers:     http://castleamber.com/testimonials.html
Technical Details
Message-ID: <Xns95EC717F38538castleamber@130.133.1.4>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!fu-berlin.de!uni-berlin.de!individual.net!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> <Xns95EA868DF1188castleamber@130.133.1.4> <ct930d.2fg.1@news.isolution.nl> <Xns95EAA862D9BDcastleamber@130.133.1.4> <ct9k2f.4js.1@news.isolution.nl> <Xns95EAD25B041B7castleamber@130.133.1.4> <ct9svc.4ko.1@news.isolution.nl> <Xns95EB6001EE123castleamber@130.133.1.4> <41fa3846$0$63643$abc4f4c3@news.wanadoo.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-7-bit
Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From: John Bokma <postmaster@castleamber.com>
Newsgroups: nl.comp.programmeren,be.comp.programming
Subject: Re: Lijnen tellen van een project
Date: 28 Jan 2005 17:09:27 GMT
Organization: Castle Amber - software development
Lines: 58
Message-ID: <Xns95EC717F38538castleamber@130.133.1.4>
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> <Xns95EA868DF1188castleamber@130.133.1.4> <ct930d.2fg.1@news.isolution.nl> <Xns95EAA862D9BDcastleamber@130.133.1.4> <ct9k2f.4js.1@news.isolution.nl> <Xns95EAD25B041B7castleamber@130.133.1.4> <ct9svc.4ko.1@news.isolution.nl> <Xns95EB6001EE123castleamber@130.133.1.4> <41fa3846$0$63643$abc4f4c3@news.wanadoo.nl>
X-Trace: individual.net KUbYNjF5YJyFfvAlXS2h4QHKLRboG9B2LShl7Ezh2sLtedVVVy
User-Agent: Xnews/5.04.25
X-Face: $7h&5K*ZL9*ZQ\6Hco2"V?1dD*C<ab^>zlws[S%i0b,@gKk|[,)Y-<hk143{.Ov"x{({zo( l,N\m`-_^nJfVQdEyt+-uAP^7WG]5mHj9&::7X-qK;Yv;xmRvNWQR"_igw+cr5WMj;6:zlj<R80Ei@ $gGWq&*{FL*kC*a