Re: #define GEVHDRSZ ( offsetof(GistEntryVector, vector[0]) ) explanation please

From: Martijn van Oosterhout <kleptog(at)svana(dot)org>
To: jorge alberto <jorge(dot)is(dot)a(dot)geek(at)gmail(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: #define GEVHDRSZ ( offsetof(GistEntryVector, vector[0]) ) explanation please
Date: 2006-12-08 22:10:14
Message-ID: 20061208221014.GK25912@svana.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(at)svana(dot)org> http://svana.org/kleptog/
> From each according to his ability. To each according to his ability to litigate.

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Michael Fuhr 2006-12-10 05:50:05 psql display of Unicode combining characters in 8.2
Previous Message Tom Lane 2006-12-08 19:52:34 Re: [HACKERS] Configuring BLCKSZ and XLOGSEGSZ (in 8.3)