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)   
|