[PATCH 0/3] Add offsetofp() and offsetofendp() for pointer arithmetic
Bence Csókás
bence.csokas at arm.com
Fri Nov 6 00:29:24 PST 2026
Hi,
On 2026. 11. 06. 9:04, Christoph Hellwig wrote:
> On Thu, Nov 05, 2026 at 06:16:15PM +0100, Bence Csokas wrote:
>> A common usage pattern for offsetof() is the following:
>>
>> offsetof(typeof(*ptr), member)
>>
>> Condense this operation to one macro for a more maintainable code base.
>
> What exactly makes non-standard macros with no obvious safety benefit
> more maintainable?
It is written out in more detail in the msg of 1/3: it helps keep lines
short, and as typeof(*ptr) may not come naturally to many, some may be
compelled to write out the typename twice::
struct my_struct_type *p;
off = offsetof(struct my_struct_type, member);
// pointer arithmetic with p and off
which induces additional work if *p's type changes.
However, as Sashiko pointed out (don't know why it didn't write this
earlier), struct_offset() already exists, so we should just use that
one, and probably add a struct_offset_end() variant.
Sorry for the noise, everyone.
Bence
More information about the linux-snps-arc
mailing list