__alignof__(3)
- NetBSD Manual Pages
__ALIGNOF__(3) NetBSD 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 ALSO
gcc(1), attribute(3), offsetof(3), typeof(3)
CAVEATS
This is a non-standard, compiler-specific extension.
NetBSD 9.2 December 20, 2010 NetBSD 9.2
Powered by man-cgi (2021-06-01).
Maintained for NetBSD
by Kimmo Suominen.
Based on man-cgi by Panagiotis Christias.