π μμΈ μ 리#
- νλ μ»΄νμΌλ¬λ νλ‘κ·Έλ¨μμ μ΄λ€ κ°μ΄ κ³μ°λκ³ μ΄λ»κ² μ¬μ©λλμ§λ₯Ό κ²°μ νκΈ° μν΄ μ κ΅ν μκ³ λ¦¬μ¦μ μ¬μ©νλ€.
- μ λ¨μν, κ³μ°κ²°κ³Ό μ¬νμ©, κ³μ° νμ κ°μ λ±μ μ§μνλ€.
- λλΆλΆμ μ»΄νμΌλ¬λ -Og, -O1, -O2…μ²λΌ μ΅μ ν λ 벨λ μ§μ ν μ μλ€.
- μ¬κΈ°μλ μΌλ¨ -O1λ‘ μ»΄νμΌλλ μ½λλ₯Ό μμ£Όλ‘ κ³ λ €νκ² λ€.
- μ»΄νμΌλ¬λ νλ‘κ·Έλ¨μ λν΄ μμ νμ§ μμ μ΅μ νλ₯Ό μ μ©ν΄μλ μλλ€.
- λ€μκ³Ό κ°μ ν¨μκ° μλ€κ³ μκ°ν΄λ³΄μ.
1 void twiddlel(long *xp, long *yp) 2 { 3 *xp += *yp; 4 *xp += *yp; 5 } 6 7 void twiddle2(long *xp, long *yp) 8 { 9 *xp += 2* *yp; 10 }- 첫λ²μ§Έ ν¨μλ λ©λͺ¨λ¦¬ μ°Έμ‘° 6λ², λλ²μ§Έ ν¨μλ 3λ²μ΄λ μμμ μ΅μ ννμ§ μμκΉ? μΆλ€.
- νμ§λ§ xpμ ypκ° κ°λ€λ©΄, κ·Έλ κ² νλ©΄ κ²°κ³Όκ° λ¬λΌμ§κ² λλ€!
- μ΄λ κ² λ ν¬μΈν°κ° λμΌν λ©λͺ¨λ¦¬ μμΉλ₯Ό κ°λ¦¬ν¬ μ μλ κ²½μ°λ₯Ό λ©λͺ¨λ¦¬ λ³μΉ(memory aliasing) μ΄λΌκ³ νλ€.
- μμ ν μ΅μ νλ§ μννλ μ»΄νμΌλ¬λ μλ‘ λ€λ₯Έ ν¬μΈν°κ° κ²ΉμΉ μ μλ€ (alias λ μ μλ€)κ³ κ°μ ν΄μΌ νλ€.
