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 |