delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/06/23/00:01:26

From: "John M. Aldrich" <fighteer AT cs DOT com>
Newsgroups: comp.lang.c,comp.os.msdos.djgpp
Subject: Re: Casting void pointers
Date: Mon, 22 Jun 1998 23:55:38 -0400
Organization: Two pounds of chaos and a pinch of salt.
Lines: 25
Message-ID: <358F273A.8845B85F@cs.com>
References: <6mkaos$k7o AT dfw-ixnews6 DOT ix DOT netcom DOT com> <358DC1FA DOT 443E297D AT cs DOT com> <898511636snz AT genesis DOT demon DOT co DOT uk>
NNTP-Posting-Host: ppp148.cs.net
Mime-Version: 1.0
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

> >int main( void )
> >{
> >    void *vp = foo;
> 
> Your compiler should have generated a diagnostic for this. The C language
> requires a cast to convert between void * and function pointers (in both
> directions). Note that C doesn't guarantee that a void * object can properly
> hold a funciton pointer. You should avoid doing this.

gcc with '-Wall' didn't say anything about that code.  However, I just
tested it with '-ansi' and got the following warning:

void.c: In function `main':
void.c:10: warning: ANSI forbids initialization between function pointer
and `void *'

So you're right.  Thanks for pointing out the mistake.

-- 
---------------------------------------------------------------------
| John M. Aldrich, aka Fighteer I  |     mailto:fighteer AT cs DOT com     |
| "Starting flamewars since 1993"  |   http://www.cs.com/fighteer/  |
|  *** NOTICE ***  This .signature |       ICQ UIN#:  7406319       |
|  is generated randomly.  If you don't like it, sue my computer.   |
---------------------------------------------------------------------

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019