π μΈλΌμ΄λ Inlining, μΈλΌμΈ ν¨μ Inline Function
π« μ Why
ν¨μ νΈμΆ μμλ ν¨μ νΈμΆ κ·μ½μ λ°λΌ μ½κ°μ μ€λ²ν€λκ° λ°μ
ν¨μ νΈμΆ μ : λͺ¨λ λ μ§μ€ν° (CPUμμ μ μ₯ 곡κ°)κ° μ μ₯λμ΄μΌ νκ³ μΈμλ€μ 볡μ¬ν΄μΌ νλ€
ν¨μ νΈμΆ ν : λ μ§μ€ν°λ€μ΄ λ€μ 볡ꡬλμ΄μΌ νλ€
λ§μ½ μμ£Ό κ°λ¨ν ν¨μλΌλ©΄ ν¨μ μμ λ¬Έμ₯μ μ€ννλ μκ°λ³΄λ€ ν¨μ νΈμΆμ μ€λΉνλ μκ°μ΄ λ 걸릴 μ μλ€
λ°λΌμ ν¬κΈ°κ° μμ ν¨μμ κ²½μ°μλ μ°¨λΌλ¦¬ ν¨μ νΈμΆμ νμ§ μκ³ μ½λλ₯Ό 볡μ¬νμ¬μ λ£μ΄μ£Όλ νΈμ΄ ν¨μ¨μ μΌ μ μλ€
π« C++ inline
inline
ν€μλ (C++)
ν¨μ μμ λΆμΌλ©΄ μ»΄νμΌλ¬λ ν¨μλ₯Ό μμ±νμ§ μκ³ ν¨μλ₯Ό νΈμΆν κ³³μ μ½λ λ£μ΄μ€
μ΄λ₯Ό μΈλΌμΈ ν¨μ Inline Function
ν¨μλ₯Ό μΈλΌμΈ ν¨μλ‘ λ§λ€λ©΄ ν¨μ νΈμΆ μ€λ²ν€λκ° μ¬λΌμ§λ―λ‘ νλ‘κ·Έλ¨μ΄ λ λΉ λ₯΄κ² μ€νλ μ μλ€.
1
2
3
4
inline void printHello()
{
cout << "Hello";
}
λ©€λ² ν¨μλ₯Ό ν΄λμ€ λ΄λΆμ μ μνλ©΄ μλμ μΌλ‘ μΈλΌμΈ ν¨μκ° λλ€ (μ¦ νΈμΆμ΄ λ©€λ² ν¨μ μ½λλ‘ λμΉλλ€)
λ©€λ² ν¨μλ₯Ό ν΄λμ€ μΈλΆμ μ μνλ©΄ μΌλ°μ μΈ ν¨μμ λμΌνκ² νΈμΆλλ€ (μ¦ μ€νμ μΈμλ€μ μ μ₯νκ³ λ³΅κ·μ£Όμλ₯Ό μ μ₯ν νμ λ©€λ² ν¨μλ‘ μ μ΄κ° μ΄λνλ€)
λ©€λ² ν¨μμ ν¬κΈ°κ° μμ κ²½μ°, ν΄λμ€ λ΄λΆμ μ μνλ κ²μ΄ μ’λ€ (μμ±μ, Getter, Setter λ±)
λ©€λ² ν¨μμ ν¬κΈ°κ° ν° κ²½μ°, μ½λ λ³΅μ¬ μ μ€ννμΌμ ν¬κΈ°κ° μ»€μ§ μ μμΌλ―λ‘, ν΄λμ€ μΈλΆμ μ μνλ κ²μ΄ μ’λ€
π« λ©λͺ¨
μ΅μ μ»΄νμΌλ¬λ μμμ κ°λ₯ν μμκΉμ§ Inliningμ μ§ννλ€κ³ ν¨
μμλλ©΄ μ’μ§λ§ λ무 μ κ²½μ°μ§λ λ§ κ²
λ§μ΄ν¬λ‘ν μ΅μ νλ μ₯κΈ°μ μΌλ‘λ μ±λ₯ ν₯μμ ν° λμμ΄ λμ§ μμ (μ’μ μ½λμ μ κ²½μ¨λΌ)