Hm... daca vrei sa vorbesti de standard, nu te
lega de gcc. Desi e cel mai standard existent, nu
se comforma 100%. Citeste in schimb pe inet despre
Standard C++ (aveam o adresa, n-o mai am).
Despre NULL, prin definitie NULL e un pointer vid,
adica ((void*)0). Cam asta-i tot.
Marius
[EMAIL PROTECTED] - [EMAIL PROTECTED] - www.spid3r.home.ro
----- Original Message -----
From: "Marius Ologesa" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Sunday, September 09, 2001 12:01 AM
Subject: [rlug] Re: gcc nu stie de NULL
>
> On Sat, 8 Sep 2001 14:57:51 +0300
> "Marius" <[EMAIL PROTECTED]> wrote the immortal
words:
>
> >
> > in prima versiune, NULL e un numar. in a doua,
e
> > un pointer (cum si tre' sa fie NULL)
>
> > >
> > > #define NULL 0
> > >
> > > si
> > >
> > > #define NULL ((void *)0)
> > >
>
> Exista pe i386 vreo situatie in care conversia
intre un pointer si un
> intreg sa nu se poata realiza? (implicit, nu
explicit, ca explicit se
> poate). In ambele sensuri? void*->int;
int->void*
> Sau, cunosti tu vre-un calculator pe care merge
gcc si/sau linux si sa
> nu se poata face o asemena conversie?
> In alta ordine de ideei, fie sursa foo.cc
> #include <stdio.h>
> int a(int)
> {
> printf("int\n");
> }
> int a(void *)
> {
> printf("pointer\n");
> }
> main()
> {
> a(0);
> a(NULL);
> a((void*)0);
> }
>
> La gcc version 2.95.2 19991024 (release))
> int
> int (si 'warning: converting NULL to non-pointer
type' la compilare)
> pointer
>
> La gcc version egcs-2.91.66 19990314/Linux
(egcs-1.1.2 release)
> ala care vine cu RH6.2
> int
> pointer
> pointer
>
> Deci, intervine problema cu functiile
supraincarcate, cand tipul lui NULL
> poate sa hotarasca ce functie trebuie sa fie
apelata. La compilatorul meu,
> se pare ca NULL este intreg, dar totusi, el
realizeaza ceva in neregula
> cu el. Celalat compilator stie ca NULL este
pointer.
> Nu stiu cum ar trebui sa faci tu, probabil nu
conteaza foarte mult,
> presupunand ca programatorii normali nu lasa
compilatorului astfel de
> decizii.
>
> --
> The Marius
> ---
> Send e-mail to '[EMAIL PROTECTED]' with 'unsubscribe
rlug' to
> unsubscribe from this list.
---
Send e-mail to '[EMAIL PROTECTED]' with 'unsubscribe rlug' to
unsubscribe from this list.