__ALIGNOF__(3) BSD 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 op‐
erand 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 mem‐
ber.
struct align {
int x;
char y;
} a;
(void)printf("%d\n", __alignof__(a.y));
SEE ALSOgcc(1), attribute(3), offsetof(3), typeof(3)CAVEATS
This is a non-standard, compiler-specific extension.
BSD December 20, 2010 BSD