return the offset of an element in a structure
#include <stddef.h> size_t offsetof( composite, name );
The offsetof() macro returns the offset of the element name within the struct or union composite. This provides a portable method to determine the offset.
The offset of name.
#include <stdio.h> #include <stddef.h> struct new_def { char *first; char second[10]; int third; }; void main() { printf( "first:%d second:%d third:%d\n", offsetof( struct new_def, first ), offsetof( struct new_def, second ), offsetof( struct new_def, third ) ); }
In a small data model, the following would result:
first:0 second:2 third:12
In a large data model, the following would result:
first:0 second:4 third:14
ANSI
Safety: | |
---|---|
Interrupt handler | Yes |
Signal handler | Yes |
Thread | Yes |
offsetof() is a macro.