Article View: de.comp.lang.c++
Article #971Re: Typ eines ?: Ausdruck?
From: Ullrich von Bassewitz
Date: Thu, 07 Dec 1995 12:19
Date: Thu, 07 Dec 1995 12:19
37 lines
1666 bytes
1666 bytes
Dietmar Kuehl (kuehl@uzwil.informatik.uni-konstanz.de) wrote:
> Der Trick liegt daran, dass 'NULL' beim gcc als '(void*)0' definiert
> ist. Das ist nach DWP 18.1 (lib.support.types) [Fussnote 135 im April
> DWP] nicht zulaessig: "Possible definitions inlucde 0 and 0L, but not
> (void*)0".
Das ist falsch und wuerde auch ueberhaupt nicht funktionieren, da in C++
eine Konvertierung von void* in einen anderen Zeigertyp (im Gegensatz zu C)
nicht automatisch durchgefuehrt wird.
Das hier ist aus /usr/include/stdio.h:
#ifndef NULL
#ifdef __cplusplus
#define NULL 0
#else
#define NULL (void*)0
#endif
#endif
> Die Konversion, die der gcc in diesem Fall macht ja, die Definition von
> 'NULL' nicht. Der Fehler wird am Einfachst dadurch behoben, dass man
> anstelle von 'NULL' einfach '0' verwendet. Am Anfang musste ich mich
> auch daran gewoehnen (ich habe lange C programmiert, bevor ich auf C++
> umgestiegen bin), aber inzwischen finde ich 'NULL' ziemlich haesslich.
Das scheint auf jeden Fall nicht die Antwort zu sein, weil Deine Annahme
(NULL == (void*)0) falsch ist.
Gruss
Uz
--
Ullrich von Bassewitz uz@ibb.schwaben.com
Technical Details
Message-ID:
<L0D7BOZL@wuschel.ibb.schwaben.com>Path:
arc1-ca.pugleaf.net!wuschel.ibb.schwaben.com!not-for-mailReferences:
<RCD7B0RH@wuschel.ibb.schwaben.com> <30c5f4ed.0@minerva.rz.uni-konstanz.de>Show Full Headers
Complete Article Headers
Newsgroups: de.comp.lang.c++ Path: arc1-ca.pugleaf.net!wuschel.ibb.schwaben.com!not-for-mail From: uz@wuschel.ibb.schwaben.com (Ullrich von Bassewitz) Subject: Re: Typ eines ?: Ausdruck? Date: 07 Dec 1995 12:19:54 GMT References: <RCD7B0RH@wuschel.ibb.schwaben.com> <30c5f4ed.0@minerva.rz.uni-konstanz.de> Message-ID: <L0D7BOZL@wuschel.ibb.schwaben.com> Reply-To: uz@ibb.schwaben.com Organization: Ingenieurbuero von Bassewitz X-Newsreader: TIN [version 1.2 PL2]