[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: NULL и g++



On Tue, 26 Sep 2000, Nikolay Ilduganov wrote:

> Влад, согласен я с жабой спутал.
> Но в (void*)0 между С и С++ есть большая разница.
> В стандарте C++ написано, что NULL может быть как 0 так и 0L, но ни в коем
> случае не ((void*)0) иначе обещаются косяки при приведении (void*) к
> (class*).  

 Вообще да, может быть. У меня ни разу не возникала потребность переназначить
NULL. Хотя если честно, мне не очевидно, что могут быть какие-то проблемы при 
использовании в качестве NULL ((void*)0) (да, я прочитал стандарт на С++ от
корки до корки - и не могу представить каких-нить проблем с ((void*)0) ).

> 
> On Tue, 26 Sep 2000, Vlad Harchev wrote:
> 
> > On Tue, 26 Sep 2000, Alexander Kotelnikov wrote:
> > 
> >  Hi, 
> > 
> > > Hi.
> > > 
> > > Я хочу, чтобы в моей C++ программе NULL'ом был не (void*)0 и не __null,
> > > а просто int 0, как оно и дожно быть в плюсах, насколько я понимаю. 
> > 
> >  Никак оно не должно быть. NULL - просто широко используемый макрос с типом
> > указатель на void и значением 0. Можно вместо NULL писать ((void*)0) если так
> > удобнее.
> > 
> > > Безопасно ли сделать что-нибудь типа
> > > # ifdef NULL
> > > #   undef NULL
> > > # endif
> > > # define NULL (0)
> > > 
> > > или
> > > const int NULL=0;
> > 
> >  Для чего? Чтобы нулевые указатели при выводе в поток как строки говили 0 а не
> > "(null)" ? Таким образом не получится.
> > 
> >  Короче, я не вижу никакой пользы от такой подмены (но работать будет, может
> > преджупрежедений будет больше).
> >  
> > > и потом вызывать C функции?
> > > 
> > > Спасибо,

 Best regards,
  -Vlad



Reply to: