offsetof(3) - wariua/manpages-ko GitHub Wiki

NAME

offsetof - ๊ตฌ์กฐ์ฒด ๋ฉค๋ฒ„์˜ ๋‚ด๋ถ€ ์œ„์น˜

SYNOPSIS

#include <stddef.h>

size_t offsetof(type, member);

DESCRIPTION

๋งคํฌ๋กœ offsetof()๋Š” ๊ตฌ์กฐ์ฒด type์˜ ์‹œ์ž‘์  ๊ธฐ์ค€ member ํ•„๋“œ์˜ ์œ„์น˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์ด ๋งคํฌ๋กœ๊ฐ€ ์œ ์šฉํ•œ ์ด์œ ๋Š” ๊ตฌ์กฐ์ฒด๋ฅผ ์ด๋ฃจ๋Š” ํ•„๋“œ๋“ค์˜ ํฌ๊ธฐ๊ฐ€ ๊ตฌํ˜„์— ๋”ฐ๋ผ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•„๋“œ๋“ค ์‚ฌ์ด์— ํŒจ๋”ฉ ๋ฐ”์ดํŠธ๋“ค์„ ๋‹ค๋ฅด๊ฒŒ ์‚ฝ์ž…ํ•  ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ํ•œ ์š”์†Œ์˜ ์˜คํ”„์…‹์ด ๋ฐ˜๋“œ์‹œ ์•ž์ชฝ ์š”์†Œ๋“ค์˜ ํฌ๊ธฐ์˜ ํ•ฉ์œผ๋กœ ์ •ํ•ด์ง€์ง€ ์•Š๋Š”๋‹ค.

member๊ฐ€ ๋ฐ”์ดํŠธ ๊ฒฝ๊ณ„์— ์ •๋ ฌ๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด (์ฆ‰ ๋น„ํŠธ ํ•„๋“œ์ด๋ฉด) ์ปดํŒŒ์ผ๋Ÿฌ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค.

RETURN VALUE

offsetof()๋Š” ์ฃผ์–ด์ง„ type ๋‚ด์—์„œ ์ฃผ์–ด์ง„ member์˜ ๋ฐ”์ดํŠธ ๋‹จ์œ„ ์˜คํ”„์…‹์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

CONFORMING TO

POSIX.1-2001, POSIX.1-2008, C89, C99.

EXAMPLE

๋ฆฌ๋ˆ…์Šค/i386 ์‹œ์Šคํ…œ์—์„œ gcc(1) ๊ธฐ๋ณธ ์˜ต์…˜์œผ๋กœ ์ปดํŒŒ์ผ ํ•  ๋•Œ ์•„๋ž˜ ํ”„๋กœ๊ทธ๋žจ์ด ๋‹ค์Œ ์ถœ๋ ฅ์„ ๋‚ด๋†“๋Š”๋‹ค.

$ ./a.out
offsets: i=0; c=4; d=8 a=16
sizeof(struct s)=16

ํ”„๋กœ๊ทธ๋žจ ์†Œ์Šค

#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>

int
main(void)
{
    struct s {
        int i;
        char c;
        double d;
        char a[];
    };

    /* ์ปดํŒŒ์ผ๋Ÿฌ์— ๋”ฐ๋ผ ์ถœ๋ ฅ์ด ๋‹ค๋ฆ„ */

    printf("offsets: i=%zd; c=%zd; d=%zd a=%zd\n",
            offsetof(struct s, i), offsetof(struct s, c),
            offsetof(struct s, d), offsetof(struct s, a));
    printf("sizeof(struct s)=%zd\n", sizeof(struct s));

    exit(EXIT_SUCCESS);
}

2019-03-06

โš ๏ธ **GitHub.com Fallback** โš ๏ธ