home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.lang.c      Meh, in C you gotta define EVERYTHING      243,242 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 242,934 of 243,242   
   Tim Rentsch to James Kuyper   
   Re: function pointer question   
   09 Jan 26 09:14:22   
   
   From: tr.17687@z991.linuxsc.com   
      
   James Kuyper  writes:   
      
   > On 2026-01-06 07:32, Michael Sanders wrote:   
   >   
   >> On Mon, 5 Jan 2026 08:39:53 -0000 (UTC), Michael Sanders wrote:   
   >>   
   >>> I might have questions down the road...   
   >   
   > In the message you were responding to, I was talking about declarations,   
   > not expressions.   
   >   
   >> One more question, but 1st the context...   
   >>   
   >> I asked ChatGPT this question:   
   >>   
   >>     In C, what is the most common meaning of (void) *foo   
   >   
   > I'm curious - in what context did you encounter that code?  As written,   
   > it's an expression, and foo would have to be a pointer to an object,   
      
   That statement is simply wrong.  The identifier foo could name a   
   function, or be of type pointer to function, or be of type pointer   
   to an object type (and whose value might or might not point to an   
   object).  A compiler might issue a diagnostic if foo has a type   
   that is a pointer to an incomplete object type, but ABICD the C   
   standard doesn't actually require that;  the constraint says that   
   the operand "shall have pointer type".   
      
   > which would be a change of subject from the previous messages in this   
   > thread.   
   >   
   > However,   
   >   
   >      (void) *foo;   
   >   
   > would be a declaration equivalent to   
   >   
   >     void *foo;   
   >   
   > which is a pointer to void, which would fit the context of our previous   
   > discussion.  Could that be what you're actually asking about?   
      
   In what context is '(void) *foo;' considered a declaration?   
   AFAICT it doesn't satisfy the syntax rules of any version   
   of ISO C.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca