Re: #define GEVHDRSZ ( offsetof(GistEntryVector, vector[0]) ) explanation please - Mailing list pgsql-hackers

From Martijn van Oosterhout
Subject Re: #define GEVHDRSZ ( offsetof(GistEntryVector, vector[0]) ) explanation please
Date
Msg-id 20061208221014.GK25912@svana.org
Whole thread Raw
In response to #define GEVHDRSZ ( offsetof(GistEntryVector, vector[0]) ) explanation please  ("jorge alberto" <jorge.is.a.geek@gmail.com>)
List pgsql-hackers
On Fri, Dec 08, 2006 at 11:53:23AM -0500, jorge alberto wrote:
> hi!
> Can you tell me what does this line means
> #define GEVHDRSZ    ( offsetof(GistEntryVector, vector[0]) )
>
> #ifndef offsetof
> #define offsetof(type, field)   ((long) &((type *)0)->field)
> #endif   /* offsetof */

It's defining the GEVHDRSZ constant to be the offset of the vector
field in the GistEntryVector structure.

The offsetof definition is for systems that don't define it already. It
cleverly determines the offset by asking for the address of the vector
field if the structure is placed at address zero.

Have a nice day,
--
Martijn van Oosterhout   <kleptog@svana.org>   http://svana.org/kleptog/
> From each according to his ability. To each according to his ability to litigate.

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: [PATCHES] Configuring BLCKSZ and XLOGSEGSZ (in 8.3)
Next
From: Michael Fuhr
Date:
Subject: psql display of Unicode combining characters in 8.2