ν°μ€ν 리 λ·°
κΈ°μ΅ ν΄λμ€ μ§μ μ(Storage class specifiler)λ λ³μλ₯Ό μν κΈ°μ΅μ₯μΉ ν λΉ κ΄λ¦¬μ ν¨μ¨μ±μ λ΄λΉνλ€. λν λ©λͺ¨λ¦¬, λ μ§μ€ν°, μ€ν λ± μ΄λμ ν λΉνλλμ λ°λΌ scopeμ life timeμ΄ λ¬λΌμ§κ² λλ€. λ°λΌμ κ° κΈ°μ΅ ν΄λμ€μ λν νΉμ§μ λͺ νν μκ³ μ½λλ₯Ό μμ±νλ κ²μ΄ μ’λ€.
auto
νν μ¬μ©νλ λ³μλ‘, μ무κ²λ μ§μ νμ§ μμΌλ©΄ μλμΌλ‘ `auto` ν€μλκ° λΆκ² λλ€. μ΄λ μ μΈλ μμ λλ ν¨μλ₯Ό λ²μ΄λλ©΄ μ¬λΌμ§κ² λλ©°, μ€ν μ€μλ λ©λͺ¨λ¦¬μ `stack`μ μμΉνκ² λλ€.
register
ν΄λΉ ν€μλλ₯Ό μ§μ ν λ³μλ₯Ό CPUμ `register`μ μ μ₯νλλ‘ μμ²ν λ μ¬μ©νλ€. μ΄λ μ»΄νμΌλ¬μ λ°λΌ μ¬μ©μκ° `register`λΌκ³ λͺ μνμμμλ λΆκ΅¬νκ³ `auto`λ‘ μ·¨κΈλ μλ μλ€. λ§μ½ `regsiter`λ‘ μ μΈλλ€λ©΄ μ£Όμκ° μκΈ°μ `&`μ°μ°μκ° νμ©λμ§ μλλ€.
static
μ΄ ν€μλλ `auto`μ λ¬λ¦¬ νλ‘κ·Έλ¨μ΄ μ’ λ£λ λκΉμ§ μ μ§λλ λ³μλ₯Ό μ μΈνκ±°λ, ν¨μ μμ λΆμ΄κ² λλ©΄ ν¨μκ° μ μΈλ νμΌλ΄μμλ μ κ·Ό κ°λ₯νμ§λ§ λ€λ₯Έ νμΌμμλ ν¨μμ μ κ·Όν μ μλλ‘ νλ€. `auto` λ³μμ κ²½μ° μ΄κΈ°νκ° λμ§ μμ§λ§, `static` λ³μμ κ²½μ° μλμΌλ‘ 0μΌλ‘ μ΄κΈ°νλλ€.
extern
μ΄λ λ€λ₯Έ νμΌμμ μ μλ λ³μλ ν¨μλ₯Ό μ°Έμ‘°νλ€λ μλ―Έλ₯Ό λνλΈλ€. ν¨μμ κ²½μ° λ€λ₯Έ νμΌμ μ μΈλ ν¨μλ₯Ό μ μΈνκ² λλ©΄ μλμ μΌλ‘ `extern`μ΄ λλ€. λ°λΌμ ν΄λΉ ν¨μλ₯Ό μ°Έμ‘°νμ§ λͺ»νκ² νλ €λ©΄ `static`μ΄λΌλ ν€μλλ₯Ό μ¬μ©νλ κ²μ΄λ€.
'πββοΈ νλ‘κ·Έλλ° μΈμ΄ > C' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
C: thread safe and reentrant (0) | 2021.01.26 |
---|---|
C: Memory Layout of C Programs (0) | 2021.01.26 |
C: fork() (0) | 2020.11.25 |
C: λμ ν λΉκ³Ό νμ© (0) | 2020.11.20 |
C: Generic Coding (0) | 2020.11.18 |