offsetof()

Получить смещение поля внутри структуры

Прототип:

#include <stddef.h>
#define offsetof( composite, name ) ...

Аргументы:

composite
Структура или объединение.
name
Имя поля в composite.

Библиотека:

libc

Описание:

Макрос offsetof() возвращает смещение поля с именем name внутри структуры или объединения composite.

Использование макроса обеспечивает переносимый метод определения смещения поля внутри структуры или объединения.

Возвращаемое значение:

Смещение поля name внутри composite.

Примеры:

#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
struct new_def
{
char *first;
char second[10];
int third;
};
int main( void )
{
printf( "first:%d second:%d third:%d\n",
offsetof( struct new_def, first ),
offsetof( struct new_def, second ),
offsetof( struct new_def, third ) );
return (EXIT_SUCCESS);
}

Классификация:

ANSI, POSIX 1003.1

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Да
Обработчик сигналов
Да
В потоке
Да

Предостережения:

offsetof() является макросом.




Предыдущий раздел: Описание API системной библиотеки