| www.delorie.com/gnu/docs/gcc/gcc_61.html | search |
![]() Buy the book! | |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The keyword __alignof__ allows you to inquire about how an object
is aligned, or the minimum alignment usually required by a type. Its
syntax is just like sizeof.
For example, if the target machine requires a double value to be
aligned on an 8-byte boundary, then __alignof__ (double) is 8.
This is true on many RISC machines. On more traditional machine
designs, __alignof__ (double) is 4 or even 2.
Some machines never actually require alignment; they allow reference to any
data type even at an odd addresses. For these machines, __alignof__
reports the recommended alignment of a type.
If the operand of __alignof__ is an lvalue rather than a type,
its value is the required alignment for its type, taking into account
any minimum alignment specified with GCC's __attribute__
extension (see section 5.32 Specifying Attributes of Variables). For example, after this
declaration:
struct foo { int x; char y; } foo1;
|
the value of __alignof__ (foo1.y) is 1, even though its actual
alignment is probably 2 or 4, the same as __alignof__ (int).
It is an error to ask for the alignment of an incomplete type.
| webmaster donations bookstore | delorie software privacy |
| Copyright © 2003 by The Free Software Foundation | Updated Jun 2003 |