[get_next_line][C] static ํ•จ์ˆ˜ & ๋ณ€์ˆ˜

2025. 6. 4. 01:00ยท๐Ÿƒ‍โ™€๏ธ Activities/42 Cursus

static ํ•จ์ˆ˜์™€ ๋ณ€์ˆ˜์˜ ์ฐจ์ด

ํ•ญ๋ชฉ static ํ•จ์ˆ˜ static ๋ณ€์ˆ˜
๋ชฉ์  ํ•จ์ˆ˜์˜ ์ ‘๊ทผ ์ œํ•œ (ํŒŒ์ผ ๋‚ด๋ถ€ ์ „์šฉ) ๋ณ€์ˆ˜์˜ ์ˆ˜๋ช… ์œ ์ง€ + ์ ‘๊ทผ ์ œํ•œ
์ˆ˜๋ช… ์ปดํŒŒ์ผ ํƒ€์ž„๋ถ€ํ„ฐ ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ ์‹œ๊นŒ์ง€ ์กด์žฌ (๋ณ€ํ™” ์—†์Œ) ์ปดํŒŒ์ผ ํƒ€์ž„๋ถ€ํ„ฐ ์ข…๋ฃŒ ์‹œ๊นŒ์ง€ ์กด์žฌ (์ „์—ญ/์ง€์—ญ ๋ชจ๋‘)
์‚ฌ์šฉ ์œ„์น˜ ๋ณดํ†ต .c ํŒŒ์ผ ์•ˆ์— ์ •์˜๋œ ๋„์šฐ๋ฏธ ํ•จ์ˆ˜ ์ง€์—ญ๋ณ€์ˆ˜ or ์ „์—ญ๋ณ€์ˆ˜
์™ธ๋ถ€ ์ ‘๊ทผ ๋‹ค๋ฅธ ํŒŒ์ผ์—์„œ ํ˜ธ์ถœ ๋ถˆ๊ฐ€ ๋‹ค๋ฅธ ํŒŒ์ผ์—์„œ ์ฐธ์กฐ ๋ถˆ๊ฐ€
์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์˜ˆ count_digits, swap, itoa_helper ๋“ฑ ํ˜ธ์ถœ ํšŸ์ˆ˜ ๋ˆ„์ , ์บ์‹œ ์ €์žฅ, ํ•œ ๋ฒˆ๋งŒ ์ดˆ๊ธฐํ™” ๋ณ€์ˆ˜ ๋“ฑ

 

static ํ•จ์ˆ˜

// ft_printf.c ๋‚ด๋ถ€
static int count_digits(int n)
{
    int len = 0;
    while (n)
    {
        n /= 10;
        len++;
    }
    return len;
}
  • ์ด ํ•จ์ˆ˜๋Š” ft_printf.c ํŒŒ์ผ ์•ˆ์—์„œ๋งŒ ์‚ฌ์šฉ๋œ๋‹ค.
  • ์™ธ๋ถ€ .c ํŒŒ์ผ์—์„œ includeํ•˜๊ฑฐ๋‚˜ ํ˜ธ์ถœํ•  ์ˆ˜ ์—†๋‹ค.
  • ๊ฐ™์€ ์ด๋ฆ„์˜ ํ•จ์ˆ˜๊ฐ€ ๋‹ค๋ฅธ ํŒŒ์ผ์— ์žˆ์–ด๋„ ์ถฉ๋Œ์ด ๋‚˜์ง€ ์•Š๋Š”๋‹ค.

 

static ์ง€์—ญ ๋ณ€์ˆ˜

int call_counter(void)
{
    static int count = 0;
    return ++count;
}
  • ์ด ํ•จ์ˆ˜๊ฐ€ ๋ช‡ ๋ฒˆ ํ˜ธ์ถœ๋๋Š”์ง€ ๊ธฐ์–ตํ•œ๋‹ค.
  • static์ด ์—†์œผ๋ฉด count๋Š” ๋งค๋ฒˆ 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.
  • static์„ ์“ฐ๋ฉด, ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋ผ๋„ count ๊ฐ’์ด ์œ ์ง€๋œ๋‹ค.

 

static ์ „์—ญ ๋ณ€์ˆ˜

static int buffer[1024]; // ์ด ํŒŒ์ผ ๋‚ด์—์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ
  • buffer๋Š” ๋‹ค๋ฅธ ํŒŒ์ผ์—์„œ extern์œผ๋กœ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†๋‹ค.
  • ์˜ค์ง ์ด .c ํŒŒ์ผ ์•ˆ์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

์š”์•ฝ

์ƒํ™ฉ static ์“ฐ๋Š” ์ด์œ 
ํŒŒ์ผ ๋‚ด๋ถ€ ์ „์šฉ ํ•จ์ˆ˜ ์™ธ๋ถ€ ๋…ธ์ถœ ๋ฐฉ์ง€ (๋งํฌ ๋ฒ”์œ„ ์ œํ•œ)
ํ•จ์ˆ˜ ๋‚ด ์ƒํƒœ ์ €์žฅ ์ง€์—ญ static ๋ณ€์ˆ˜๋กœ ํ•จ์ˆ˜ ์ƒํƒœ ์œ ์ง€
์ „์—ญ ๋ณ€์ˆ˜ ์€๋‹‰ ์ „์—ญ ๋ณ€์ˆ˜์˜ ๋ฒ”์œ„๋ฅผ ํŒŒ์ผ ๋‚ด๋กœ ์ œํ•œ (์บก์Аํ™”)

 

ํ•ญ๋ชฉ ์˜๋ฏธ
static ํ•จ์ˆ˜ ๋‹ค๋ฅธ ํŒŒ์ผ์—์„œ ๋ถ€๋ฅด๋ฉด ์•ˆ ๋œ๋‹ค.
static ์ง€์—ญ ๋ณ€์ˆ˜ ํ•จ์ˆ˜๋Š” ๋๋‚˜๋„ ๊ฐ’์„ ์œ ์ง€ํ•œ๋‹ค.
static ์ „์—ญ ๋ณ€์ˆ˜ ์™ธ๋ถ€์—์„œ๋Š” ์ด ์ „์—ญ ๋ณ€์ˆ˜๋ฅผ ๋ชป ์“ด๋‹ค.

'๐Ÿƒโ€โ™€๏ธ Activities > 42 Cursus' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[C] Memory Leak  (3) 2025.06.04
[get_next_line][C] read & write ํ•จ์ˆ˜  (0) 2025.06.04
[get_next_line][C] open ํ•จ์ˆ˜  (0) 2025.06.04
[get_next_line][C] ํŒŒ์ผ ๋””์Šคํฌ๋ฆฝํ„ฐ(File Descriptor)  (0) 2025.06.02
[ft_printf][C] printf ํฌ๋งท ์ถœ๋ ฅ ์˜ˆ์‹œ (%p, %u, %x, %X)  (1) 2025.06.02
'๐Ÿƒ‍โ™€๏ธ Activities/42 Cursus' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [C] Memory Leak
  • [get_next_line][C] read & write ํ•จ์ˆ˜
  • [get_next_line][C] open ํ•จ์ˆ˜
  • [get_next_line][C] ํŒŒ์ผ ๋””์Šคํฌ๋ฆฝํ„ฐ(File Descriptor)
0=2.
0=2.
  • 0=2.
    0=2
    0=2.
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (104)
      • ๐Ÿ“‚ Project (2)
        • Paint the City (2)
      • ๐Ÿ’ญ Problem Solving (42)
        • C++ (28)
        • Java (14)
      • ๐Ÿ“ Study (17)
        • React (1)
        • Java (16)
      • ๐Ÿ’ป CS (11)
        • ๋ฉด์ ‘์„ ์œ„ํ•œ CS ์ „๊ณต์ง€์‹ ๋…ธํŠธ (2)
        • ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ (9)
      • ๐Ÿƒ‍โ™€๏ธ Activities (32)
        • Web Front-End Basic Study (6)
        • 42 Cursus (26)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
    • ๊ธ€์“ฐ๊ธฐ
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    CS
    La Piscine
    HTML
    dfs
    VR
    unity
    ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ
    ๋ฐฑ์ค€
    github
    ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜
    makefile
    ์‹œ๋ฎฌ๋ ˆ์ด์…˜
    C
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    ๊ตฌํ˜„
    java
    CSS
    dynamic programming
    ํŠธ๋ฆฌ
    swea
    ์ •๋ ฌ
    42๊ฒฝ์‚ฐ
    ๋ธŒ๋ฃจํŠธํฌ์Šค
    ๋ฐฑํŠธ๋ž˜ํ‚น
    .h
    BFS
    knapsack
    ๋งต
    react
    git
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
0=2.
[get_next_line][C] static ํ•จ์ˆ˜ & ๋ณ€์ˆ˜
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”