[Cνλ‘κ·Έλλ°] 01. C μΈμ΄μ κ°μ
π C μΈμ΄μ μ μ, μμ¬, νΉμ§
π C μΈμ΄μ μ μ
β C μΈμ΄ : νλ‘κ·Έλλ° μΈμ΄
β νλ‘κ·Έλλ° μΈμ΄
β« μ¬λκ³Ό μ»΄νμΌλ¬(compiler)κ° μ΄ν΄νλλ‘ μ½μλ ννμ μΈμ΄
β« κΈ°κ³μ΄, μ΄μ
λΈλ¦¬μ΄, C, C++, C#, Java, PHP λ±
β C μΈμ΄λ μ»΄νμΌλ¬κ° νμ
β μ»΄νμΌλ¬
β« νλ‘κ·Έλλ° μΈμ΄λ‘ μμ±λ νλ‘κ·Έλ¨μ μ»΄ν¨ν°κ° μ΄ν΄νλλ‘ κΈ°κ³μ΄λ‘ λ²μν΄μ£Όλ λ²μκΈ°
• μ΄μ
λΈλ¬(assembler)
β« κΈ°νΈλ‘ ννλ μ΄μ
λΈλ¦¬ μ½λλ₯Ό κΈ°κ³μ΄λ‘ λ²μνλ λ²μκΈ°
• μΈν°ν리ν°(interpreter)
β« μμ€ νλ‘κ·Έλ¨μ ν λ²μ κΈ°κ³μ΄λ‘ λ³νμν€λ μ»΄νμΌλ¬μ λ¬λ¦¬,
νλ‘κ·Έλ¨μ ν λ¨κ³μ© κΈ°κ³μ΄λ‘ ν΄μν΄ μ€ννλ 'μΈμ΄μ²λ¦¬ νλ‘κ·Έλ¨'
(μ¦, ν μ€μ© λ²μ)
π C μΈμ΄μ μμ¬
π C μΈμ΄μ νΉμ§
• νλ‘κ·Έλ¨ μ΄μμ± λμ
• κ°λ¨ν λ¬Έλ² ννμΌλ‘ ν¨μΆμ νλ‘κ·Έλ¨ μμ±μ΄ μ©μ΄
• μ κΈμΈμ΄ νΉμ±μ κ°μ§ κ³ κΈμΈμ΄
• λ Όλ¦¬μ μ΄λ©° ꡬ쑰μ μΈ μμ€ν νλ‘κ·Έλλ° μΈμ΄
• νλμ¨μ΄ μ μ΄κ° κ°λ₯ (κΈ°κ³μ΄, μ΄μ λΈλ¦¬μ΄λ κΈ°κ³ μΉνμ )
π C νλ‘κ·Έλ¨μ μμ± λ° μ€λΉ
π νλ‘κ·Έλ¨ κ°λ° λ¨κ³
β μλν°(editor)μ μ»΄νμΌλ¬ νμ
μλν°
: μμ€ μ½λλ₯Ό μμ±ν΄ μ μ₯ν μ μλλ‘ λμμ£Όλ λꡬ
C μ»΄νμΌλ¬
: Turbo C/C++, Dev-C++, Visual C++, GCC λ±
π C νλ‘κ·Έλ¨ μμ± κ³Όμ
μ½λ© β¨ μ»΄νμΌ β¨ λ§νΉ
μ½λ© λ¨κ³
β’ μμ€ μ½λλ₯Ό μμ±νμ¬ μμ€ νμΌ(source file)μ μμ±νλ κ³Όμ ( *.c / *.cpp )
μ»΄νμΌ λ¨κ³
β’ μμ€ νμΌμ΄ λͺ©μ νμΌ(object file)λ‘ λ³νλλ κ³Όμ ( *.obj )
(λͺ©μ νμΌμ μ€ν νμΌ μ΄μ λ¨κ³)
λ§νΉ λ¨κ³
β’ λͺ©μ νμΌμ μ€ν νμΌ(execution file)λ‘ λ³ννλ κ³Όμ
β μμ€ νμΌμ μμ±
β’ μ€λ λ μ°λ C μ»΄νμΌλ¬λ₯Ό μ¬μ©ν΄μΌ ν¨ (C, C++ ν΅ν©)
β’ νμ₯μκ° λ¬΄μμ΄λμ λ°λΌ κ·Έμ λ§λ μ»΄νμΌλ¬κ° ꡬλ
C λ .c
C++ μ .cpp
β μΆκ° μ§μ
β’ C++ μ ++λ pythonμλ μλ κ°μ²΄μ§ν₯μ΄ μΆκ°λ¨μ μλ―Έ
β’ pythonμλ μ¦κ° μ°μ°μ ++ κ° μκ³ i = i + 1 λ‘ μ¨μΌ νλ€
β μμ€ νμΌμ μ»΄νμΌ
β’ κΈ°κ³μ΄λ‘ λ λͺ©μ νμΌλ‘ μ»΄νμΌ λ¨
β μ€ν νμΌμ μμ± (λ§νΉ κ³Όμ )
β’ μμ€ νμΌ λ§μΌλ‘ λ§λ λͺ©μ νμΌμ λ°λ‘ μ€ν νμΌμ΄ λ μ μμΌλ©°,
λ€λ₯Έ λͺ©μ νμΌκ³Ό λΌμ΄λΈλ¬λ¦¬ νμΌμ΄ μ°κ²°λμ΄μΌ λ§μ»€κ° μ€ν νμΌμ λ§λ¦
β’ μ€μ λ‘λ μ»΄νμΌ/λ§νΉ κ³Όμ μ΄ μ»΄νμΌλ¬λ₯Ό ν΅ν΄ νκΊΌλ²μ μ΄λ£¨μ΄μ§μ§λ§,
μ΄λ‘ μ μΌλ‘λ λ΄λΆμμ μ€μ λ§νΉ κ³Όμ μ κ±°μ³ μ€ν νμΌμ΄ λ§λ€μ΄μ§λ€.
βͺ λ§μ»€(linker) : μ¬λ¬ λͺ©μ νμΌκ³Ό λΌμ΄λΈλ¬λ¦¬ νμΌμ μ°κ²°ν΄μ£Όλ λꡬ
π©π»π» Visual Studio μ»΄νμΌλ¬ μ¬μ©ν΄λ³΄κΈ°
• μ νλ‘μ νΈ λ§λ€κΈ°
β’ Windows λ°μ€ν¬ν± λ§λ²μ¬ μ ν ν λ€μ
• μ νλ‘μ νΈ κ΅¬μ±
β’ νλ‘μ νΈ μ΄λ¦, μμΉ μ§μ ν λ§λ€κΈ°
β’ (μ νμ¬ν) μ루μ
λ° νλ‘μ νΈλ₯Ό κ°μ λλ ν°λ¦¬μ λ°°μΉνλλ‘ μ²΄ν¬
• μΆκ° μ΅μ μ λΉ νλ‘μ νΈ μ²΄ν¬ ν νμΈ
• λΉ νλ‘μ νΈ μ΄λ¦¬λ©΄ μμ€νμΌ μμ±
β’ μμ€ νμΌ μ€λ₯Έμͺ½ λ§μ°μ€ - μΆκ° - μνλͺ©
β’ μμ€ νμΌμ νμ₯μλ₯Ό .cλ‘ μ§μ
• μ루μ λΉλ
β’ μλ μΆλ ₯ νμμ μ루μ λΉλλ‘ μ»΄νμΌν κ²°κ³Ό νμΈ κ°λ₯
• μ€ννμΌ μ€ν
β’ λλ²κ·Έ - λλ²κ·Ένμ§ μκ³ μμ
π C νλ‘κ·Έλ¨μ ꡬμ±
π C νλ‘κ·Έλ¨μ κΈ°λ³Έ ꡬ쑰
⒠맨 λ°(νμ)μ μ¬μ©μ μ μ ν¨μλ λμ λΆμ main() μ¬μ΄μ μμΉν μλ μλ€.
• C νλ‘κ·Έλ¨μ λ°λμ νλ μ΄μμ ν¨μλ₯Ό ν¬ν¨ β« main() ν¨μ λ°λμ μ‘΄μ¬
• ν¨μ μμκ³Ό λ μ€κ΄νΈ { } μ¬μ©
• μ€κ΄νΈ μμλ λ³μμ μΈλ¬Έ, μΉνλ¬Έ, μ°μ°λ¬Έ, ν¨μ λ± λͺ λ Ή κΈ°μ
• μ νμ²λ¦¬κΈ°(preprocessor)λ₯Ό μ μΈν λ¬Έμ₯μ λμλ μΈλ―Έμ½λ‘ ( ; ) λΆμ
π C νλ‘κ·Έλ¨μ κ΅¬μ± μμ
β μμ½μ΄ (reserved word)
β λͺ
μΉ (identifier)
λͺ μΉμ λ§λ€ λ κ·μΉ
β μ¬μ©μ μ μ λͺ
μΉμ μ
β μμ (constant)
μμΉ μμ, λ¬Έμ μμ, λ¬Έμμ΄ μ
β μ°μ°μ (operator)
κ°μ’
μ°μ° μν
β« λ€λ₯Έ μΈμ΄μ λΉν΄ λ§μ μ°μ°μ
β μ€λͺ
λ¬Έ (μ£Όμ)
β’ pythonμμλ ν μ€ μ£Όμ #, μ¬λ¬ μ€ μ£Όμμ ''' ~ '''
π μλ¬μ κ²½κ³
π μλ¬ (error)
β’ μλ¬λ λ°λμ μμ ν΄μΌλ§ μ€ν νμΌ μ€ν κ°λ₯
π κ²½κ³ (warning)