https://codebunny99.tistory.com/122
CPU λ©λͺ¨λ¦¬μ λν΄ νμ΅νκΈ°
(νμ) λ³μ = λ°μ΄ν° =μ κΈ°μ€μΌλ‘ μΌμͺ½μ λ³μ, μ€λ₯Έμͺ½μ λ°μ΄ν°λΌκ³ νλ€. count = 3 μ½λ (Code) μμ:νλ‘κ·Έλ¨μ "μλ¦¬μ± "μ΄λΌκ³ μκ°ν μ μλ€.μλ¦¬μ± μλ μ리 λ°©λ²(λͺ λ Ήμ΄)λ€μ΄ μ ν
codebunny99.tistory.com
λ³μμ μμ±
- μ΄λ¦, νμ , ν¬κΈ°, κ° + λ²μ, μμ‘΄μκ°, μ°κ²°
λ²μ(scope) : λ³μκ° μ¬μ© κ°λ₯ν λ²μ, κ°μμ±
μμ‘΄ μκ°(lifetime) : λ©λͺ¨λ¦¬μ μ‘΄μ¬νλ μκ°
μ°κ²°(linkage) : λ€λ₯Έ μμμ μλ λ³μμμ μ°κ²° μν
λ³μμ λ²μ(scope) : μ μλ³μμ μ§μλ³μ
//---------μ μλ³μμ λ²μ μμ----------
#include<stdio.h>
βββββββββββββββ
int A; //μ μλ³μ. μ΄κΈ°κ°μ 0
int B; //μ μλ³μ. μ΄κΈ°κ°μ 0
int add()
{
ββββreturn A + B;
}
int main()
{
ββββint answer; //μ§μλ³μ
ββββ
ββββ//---------μ§μλ³μμ λ²μ μμ----------
ββββ
ββββA = 5;
ββββB = 7;
ββββ
ββββanswer = add();
ββββprintf("%d + %d = %d\n", A, B, answer);
ββββ
ββββ//---------μ§μλ³μμ λ²μ λ----------
ββββ//---------μ μλ³μμ λ²μ λ----------
ββββ
ββββreturn 0;
}
μ μ λ³μ Global Variables
- μ μ λ³μλ ν¨μ μΈλΆμμ μ μΈλ λ³μλ‘, νλ‘κ·Έλ¨μ λͺ¨λ ν¨μμμ μ κ·Ό κ°λ₯νλ€
- μ μ λ³μμ λ²μλ μμ€νμΌ μ 체μ΄λ€.
- μ μ λ³μλ νλ‘κ·Έλ¨μ μ 체 μλͺ λμ μ‘΄μ¬νλ©°, νΉμ λ©λͺ¨λ¦¬ μμμ μ μ₯λλ€
- λ³μλ λν΄νΈλ‘ 0μΌλ‘ μ΄κΈ°νλμ΄μμ§λ§, κΈ°λ³Έμ μΌλ‘ μ΄κΈ°ν μν€λ κ²μ΄ μ’λ€.
μ§μ λ³μ Local Variables
- μ§μ λ³μλ ν¨μλ λΈλ‘ λ΄μμ μ μΈλ λ³μλ‘, μ μΈλ ν¨μλ λΈλ‘μμλ§ μ κ·Ό κ°λ₯νλ€.
- μ§μ λ³μλ ν΄λΉ λΈλ‘μ΄ μ€νλ λ μμ±λκ³ , λΈλ‘μ΄ μ’ λ£λλ©΄ μλ©Έλλ€.
- C μΈμ΄μμ μ§μ λ³μλ κΈ°λ³Έμ μΌλ‘ μ°κ²°μ΄ μλ€. μ¦, λ€λ₯Έ νμΌμ΄λ λ€λ₯Έ λΈλ‘μμ μ κ·Όν μ μλ κ³ μ ν λ³μμ΄λ€.
- λ³μλ₯Ό 0μΌλ‘ μ΄κΈ°ννμ¬μΌ νλ€.
μ§μ λ³μλ₯Ό μ΄κΈ°ννλ μ΄μ
- μ§μ λ³μλ μ μΈλ ν¨μλ λΈλ‘μ΄ μ€νλ λ λ©λͺ¨λ¦¬μ ν λΉλλ€. μ΄ λ, μ΄κΈ°νλμ§ μμ μ§μ λ³μλ μ΄μ μ μ¬μ©ν λ©λͺ¨λ¦¬μ κ°(μ°λ κΈ° κ°)μ κ°μ§κ³ μμ μ μλ€. μ΄ κ°μ μ¬μ©νλ©΄ μμμΉ λͺ»ν κ²°κ³Όλ₯Ό μ΄λν μ μλ€.
- μ΄κΈ°νλ μ§μ λ³μλ μμΈ‘ κ°λ₯ν κ°μ κ°μ§κ³ μλ€. μ΄λ νλ‘κ·Έλ¨μ λμμ μμΈ‘νκΈ° μ½κ² λ§λ€μ΄μ£Όλ©°, λ²κ·Έλ₯Ό μ°Ύκ³ μμ νλ λ° λμμ΄ λλ€.
# λ§€κ°λ³μλ μΌμ’ μ μ§μλ³μμ΄λ€.
- λ§€κ°λ³μμ μ§μ λ³μ λͺ¨λ μ€ν λ©λͺ¨λ¦¬(stack memory)μ μ μ₯λλ€.
#include <stdio.h>
int inc(int counter);
int main(void)
{
ββββint i;
ββββ
ββββi = 10;
ββββreturn 0;
}
void inc(int counter){ //λ§€κ°λ³μλ μΌμ’
μ μ§μλ³μ
βcounter++;
}
λ§€κ°λ³μμ νΉμ§
- ν¨μ νΈμΆ μ λ§€κ°λ³μκ° μ€ν νλ μμ ν λΉλκ³ , ν¨μ μ’ λ£ μ ν΄λΉ νλ μμ΄ μ κ±°λλ©΄μ λ³μλ μ κ±°λλ€.
- λ§€κ°λ³μλ ν¨μ νΈμΆ μ μ λ¬λ κ°μΌλ‘ μ΄κΈ°νλ©λλ€. νΈμΆμκ° μ λ¬ν κ°μ΄ λ§€κ°λ³μμ μ΄κΈ°κ°μ΄ λλ€.
- κ·Έλ¬λ―λ‘ ν¨μ μΈλΆμμ μ κ·Όν μ μλ λ°©λ²μ΄ μ νλλ€. μΌλ°μ μΌλ‘λ ν¨μ λ΄λΆμμλ§ μ¬μ©λλ€.
κ°λ³ λ§€κ° λ³μ
- λ§€κ°λ³μμ κ°μκ° κ°λ³μ μΌλ‘ λ³ν μ μλ κΈ°λ₯
- int sum ( int num, ... ) κ³Ό κ°μ΄ μ΄λ€.
#include <stdio.h>
#include <stdarg.h> // κ°λ³ λ³μλ₯Ό μ²λ¦¬ν μ μκ² μν¬νΈ
int sum (int, ...);
int main(void)
{
βint answer = sum(4, 4, 3, 2, 1); // λ³μ κ°μ μκ΄ x
ββββprintf("ν©μ %dμ
λλ€\n", answer);
ββββreturn(0);
}
int sum( int num, ... ) // κ°λ³ λ³μ μ²λ¦¬ ν¨μ
{
ββββint answer = 0;
ββββva_list argptr;
ββββva_start(argptr, num);
ββββfor ( ; num > 0 ; num-- )
βββββanswer += va_arg( argptr, int );
ββββva_end( argptr );
ββββ
ββββreturn( answer );
}
'C Programming Language > C' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| CμΈμ΄ μ¬κ·μ μκ³ λ¦¬μ¦ : νλ Έμ΄ ν λ¬Έμ (0) | 2024.06.19 |
|---|---|
| CμΈμ΄ static, register, volatile μ§μ μ κ°λ (2) | 2024.06.19 |
| CμΈμ΄ μ¬μ©μ μ μ ν¨μ (0) | 2024.06.19 |
| CμΈμ΄ λΌμ΄λΈλ¬λ¦¬μ rand() ν¨μ (0) | 2024.06.18 |
| CμΈμ΄ Basic λ°λ³΅λ¬Έ while, for κ°λ (0) | 2024.06.18 |