Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.


__ALIGNOF__(3)             Library Functions Manual             __ALIGNOF__(3)

NAME
     __alignof__ - GNU extension for alignment of an object

SYNOPSIS
     int
     __alignof__(void x);

DESCRIPTION
     The __alignof__() operator returns the alignment of its operand.  The
     operand can be a type or an expression.  If the operand is a `lvalue',
     the return value represents the required alignment of the underlying
     type, not the actual alignment of the specified `lvalue'.

     The returned value is specific to the architecture and the ABI.  If the
     architecture does not impose strict alignment requirements, __alignof__()
     returns the minimum required alignment.  If __aligned(3) is used to
     increase the alignment, __alignof__() returns the specified alignment.

EXAMPLES
     The syntax is comparable to the sizeof() operator.  If the architecture
     aligns integers along 32-bit address boundaries, the following should
     print the value 4.

           (void)printf("%d\n", __alignof__(int));

     On the other hand, the following example should print the value 1, even
     though this is unlikely to be the actual alignment of the structure
     member.

           struct align {
                   int  x;
                   char y;
           } a;

           (void)printf("%d\n", __alignof__(a.y));

SEE ALSO
     gcc(1), attribute(3), offsetof(3), typeof(3)

CAVEATS
     This is a non-standard, compiler-specific extension.

NetBSD 10.99                   December 20, 2010                  NetBSD 10.99