π οΈBackend/βοΈC
[CμΈμ΄] C μΈμ΄μ κ°μ
junbin2
2025. 8. 18. 02:09
β 1. C μΈμ΄μ λ±μ₯κ³Ό λ°μ
(1) μ»΄ν¨ν° νλ‘κ·Έλλ°κ³Ό νλ‘κ·Έλλ° μΈμ΄
[ νλ‘κ·Έλλ°μ΄λ? ]
- μ»΄ν¨ν°κ° μμ μ μννκΈ° μν΄ μ€νν΄μΌ νλ μΌλ ¨μ λͺ λ Ήμ μμ±νλ κ²
[ νλ‘κ·Έλλ° μΈμ΄ ]

- νλ‘κ·Έλ¨μ μμ±νκΈ° μν΄ μ¬μ©λλ μΈμ΄
(2) C μΈμ΄μ νμ
- 1972λ Bell μ°κ΅¬μμ Denis Ritchieκ° μμ€ν νλ‘κ·Έλλ°μ μν λͺ©μ μΌλ‘ κ°λ°ν νλ‘κ·Έλλ° μΈμ΄μ΄λ€.
- μ»΄ν¨ν° κΈ°μ’ κ° νΈνμ±μ΄ λμ κ³ κΈ νλ‘κ·Έλλ° μΈμ΄
- νλμ¨μ΄ μμ€μ μ μ΄μ λΉ λ₯Έ μ€νμ΄ κ°λ₯ν νλ‘κ·Έλ¨μ λ§λ€ μ μλ μΈμ΄
- PDP-7 μ»΄ν¨ν°μμ μ΄μ λΈλ¦¬μ΄λ‘ ꡬνν Unix 컀λμ CμΈμ΄λ‘ μ¬μμ± μ¦, Cλ‘ λ°κΏμ μ½κ² 보μ΄κ²ν¨.
- λ€μν μ»΄ν¨ν°μ Unix μ΄μ체μ λ₯Ό μ΄μν μ μκ² λ¨ ( νλμ μ΄μ체μ λ€μ λλΆλΆ Unix κΈ°λ°μΌλ‘ λ§λ€μ΄μ Έ μμ. )
(3) C μΈμ΄μ νΉμ§
[ λ²μ© κ³ κΈμΈμ΄ ]
- λ Όλ¦¬μ μΈ μ²λ¦¬ ꡬ쑰λ₯Ό λ§λ€ μ μλ λ°μ΄ν° νν λ° νλ¦μ μ΄λ₯Ό ν μ μμ.
- μ¬λ¬ κ°μ§ μ μ©ν μ²λ¦¬λ₯Ό μν νμ€ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ 곡ν¨
- νλ‘κ·Έλ¨μ μ΄μμ±μ΄ λμ
[ μμ€ν νλ‘κ·Έλλ°μ μ μ‘ν μΈμ΄ ]
- μ΄μ체μ , μ₯μΉκ΄λ¦¬μ, μ νΈλ¦¬ν° λ±μ λ§λλ κ²μ μμ€ν νλ‘κ·Έλλ°μ΄λΌκ³ νλ€.
- μ΄ μ²λΌ μ κΈμΈμ΄ μμ€μ νΉμ±μ΄ μμΌλ©°, νλμ¨μ΄ μ μ΄μ μ ν©νλ©°, λ§€μ° λΉ λ₯Έ μ€ν μλλ₯Ό κ°μ§κ³ μμ.
[ κ°κ²°ν λ¬Έλ² κ΅¬μ‘°λ‘ λμ΄ μμ ]
- λ¬Έλ² κ΅¬μ‘°κ° κ³ κΈμΈμ΄ μμ€μΌλ‘ λμ΄μμ΄, μ΄ν΄νκΈ° μ¬μ
β 2. C νλ‘κ·Έλ¨μ μμ±
(1) νλ‘κ·Έλ¨ κ°λ° λ¨κ³

(2) C νλ‘κ·Έλ¨μ μ€ν νμΌλ‘ λ§λλ κ³Όμ
[ 1. μ½λ© ]
- C μΈμ΄μ λ¬Έλ²μ λ§κ² μ½λ©μ νλ κ³Όμ μ΄λ©°, μ΄ κ³Όμ μ ν΅ν΄ C νλ‘κ·Έλ¨μ λ§λ€ μ μλ€. ( .c νμ₯μ )
[ 2. μ»΄νμΌ ]
- λͺ©μ νμΌ(.obj) λ³ν κ³Όμ μ΄λ©°, μ΄ κ³Όμ μ μ»΄νμΌμ΄λΌκ³ νλ€.
- λͺ©μ νμΌ: κΈ°κ³κ° μ΄ν΄ ν μ μλ κΈ°κ³ ννμ μ½λλ₯Ό μλ―Ένλ€. ( .obj νμ₯μ )
[ 3. λ§ν¬ ]
- λͺ©μ νμΌλ€μ λ¬Άμ΄μ νλμ μ€ννλ¦μΌλ‘ λ§λλ κ³Όμ μ΄ λ§ν¬ κ³Όμ μ.
- μ»΄νμΌ λ λͺ©μ νμΌ, λΌμ΄λΈλ¬λ¦¬ λ±μ λ¬Άμ΄μ μ€ν ν μ μλ μ½λμ ννλ‘ λ§λ€μ΄μ€ ( .exe νμ₯μ )
[ μ 리 ]
- 보ν΅μ μ΄ κ³Όμ λ€μ IDE λ₯Ό ν΅ν΄ ν λ²μ μ΄λ€μ§. νμ§λ§, κ°κ°μ λμμ λ΄λΆμ μΌλ‘ λΆλ¦¬κ° λμ΄μμ.
- μ»΄νμΌκ³Ό λ§ν¬ κ³Όμ μ ν©μ³μ λΉλκ³Όμ μ΄λΌκ³ λΆλ¦
- C νλ‘κ·Έλ¨ κ°λ° λ° μ€νμλ μμ€ μ½λ νΈμ§κΈ°, μ»΄νμΌλ¬, λ§μ»€, λλ²κΉ λκ΅¬κ° νμν¨. ( ν΅ν©κ°λ°νκ²½ - IDE λΌκ³ λΆλ¦ )
β 3. C νλ‘κ·Έλ¨μ ꡬμ±
(1) C νλ‘κ·Έλ¨μ κΈ°λ³Έ ꡬ쑰

[ C νλ‘κ·Έλ¨ μμ±μμ μΌλ°μ μΈ κ·μΉ ]
- λ°λμ νλ μ΄μμ ν¨μλ₯Ό ν¬ν¨ν΄μΌ νλ€.
- main() ν¨μκ° λ°λμ μ‘΄μ¬ν΄μΌ νλ€.
- ν¨μμ λͺΈμ²΄λ μμκ³Ό λμ μ리λ μ€κ΄νΈ {}λ₯Ό μ¬μ©νμ¬ λΈλ‘μΌλ‘ ꡬμ±νλ€.
- λΈλ‘ μμλ λ³μ μ μΈλ¬Έ, μΉν, μ°μ°, ν¨μνΈμΆ λ±μ λͺ λ Ήμ κΈ°μ νλ€.
- μ νμ²λ¦¬ μ§μμ΄(perprocessiong directives)λ₯Ό μ μΈν λ¬Έμ₯μ λμλ μΈλ―Έμ½λ‘ (;)μ λΆμΈλ€.
- μ νμ²λ¦¬ μ§μμ΄: C νλ‘κ·Έλ¨ μ»΄νμΌ μ μ²λ¦¬λλ λͺ λ Ήμ΄λ₯Ό μλ―Έν¨.
(2) C νλ‘κ·Έλ¨μ κ΅¬μ± μμ
[ C νλ‘κ·Έλ¨μ ꡬμ±νλ ν ν°μ μ’ λ₯ ]
- μμ½μ΄(ν€μλ): Cμμ κ³ μ ν λ¬Έλ² λ° μλ―Έκ° μ ν΄μ§ λ¨μ΄ ( char, int, auth, volatile, for, if λ± )
- λͺ μΉ: λ³μ, ν¨μ λ±μ μλ³νκΈ° μν΄ μ μνλ μ΄λ¦ ( λ³μλͺ , ν¨μλͺ λ± )
- μμ: κ°μ΄ λ³νμ§ μλ μλ£ (μ μ, μ€μ, λ¬Έμ λ±)
- λ¬Έμμ΄: ν°λ°μ΄νλ‘ λ¬ΆμΈ λ¬Έμ μνμ€
- ꡬλμ : κ³ μ ν λ¬Έλ² λ° μλ―Έκ° μ ν΄μ§ κΈ°νΈ
- μ€λͺ λ¬Έ: νλ‘κ·Έλ¨μ λν μ£Όμ ex - /* */ , // ( μ»΄νμΌλ¬λ μ€λͺ λ¬Έμ μμμ 무μν¨ )
β 4. μλ¬μ κ²½κ³
(1) μλ¬
- νλ‘κ·Έλ¨μ μ μμ μΌλ‘ λΉλν μ μλ λ¬Έμ κ° ν¬ν¨λ μμ€ μ½λμ κ²½μ° μλ¬λ©μμ§λ₯Ό μΆλ ₯ν¨
- CμΈμ΄μ λ¬Έλ²μ λ§μ§ μλ νμμ λ¬Έμ₯μ μ¬μ©ν κ²½μ°
- λ°λμ νμν μμκ° λλ½λ κ²½μ°
- μλ¬ λ°μμ λΉλκ° μ€μ§λμ΄ λͺ©μ μ½λ λ° μ€ν νμΌμ΄ μμ±λμ§ μμ
- μλ¬ λ©μμ§λ₯Ό νμΈνμ¬ λ°λμ μμ ν΄μΌ ν¨
(2) κ²½κ³
- λΉλλ₯Ό μ§νν μλ μμ§λ§, λ¬Έμ λ°μ κ°λ₯μ±μ΄ μλ μμ€ μ½λλ₯Ό μμ±ν κ²½μ°μ΄λ€.
- μ¬μ©νμ§ μλ λ³μλ ν¨μλ₯Ό μ μν κ²½μ°
- μ€μ°¨κ° λ°μν μ μλ λ¬Έμ₯ λ±
- κ²½κ³ κ° μλλΌλ μ€ν νμΌμ μμ±λλ©°, νλ‘κ·Έλ¨μ μ€νν μ μμ
- κ²½κ³ λ©μμ§λ₯Ό λ΄μ©μ νμ νμ¬ νμν κ²½μ°μλ μ μ ν μμ νλ©°, μλ¬΄λ° λ¬Έμ κ° μλ κ²½κ³ λ 무μν μ μμ