#include <stdio.h>
void func() {
int localVar = 10; // μ§μ λ³μ
printf("localVar: %d\n", localVar);
}
int main() {
func();
printf("%d", localVar); // μ€λ₯: localVarλ ν¨μ μΈλΆμμ μ κ·Ό λΆκ°
return 0;
}
β error: 'localVar' undeclared (first use in this function)
#include <stdio.h>
int globalVar = 100; // μ μ λ³μ
void func() {
printf("globalVar: %d\n", globalVar);
}
int main() {
printf("globalVar: %d\n", globalVar); // μ μ λ³μ μ κ·Ό κ°λ₯
func(); // μ μ λ³μλ λ€λ₯Έ ν¨μμμλ μ κ·Ό κ°λ₯
return 0;
}
β globalVar: 100
β globalVar: 100
static
ν€μλλ λ³μμ μλͺ
κ³Ό μ€μ½νλ₯Ό μ μ΄νλ λ° μ¬μ©λλ€.
static
λ³μλ₯Ό μ¬μ©ν μ μλ λ κ°μ§ μ£Όμ μν©μ λ€μκ³Ό κ°λ€ :
static
ν€μλλ₯Ό μ¬μ©ν μ§μ λ³μλ ν¨μ λ΄μ μ μΈλμ§λ§, κ·Έ κ°μ νλ‘κ·Έλ¨μ΄ μ’
λ£λ λκΉμ§ μ μ§λλ€. λ€μ ν¨μκ° νΈμΆλ λ, μ΄μ κ°μ κΈ°μ΅νκ³ μλ€.#include <stdio.h>
void counter() {
static int count = 0; // static μ§μ λ³μ
count++;
printf("count: %d\n", count);
}
int main() {
counter(); // count: 1
counter(); // count: 2 (μ΄μ κ°μ κΈ°μ΅ν¨)
counter(); // count: 3
return 0;
}
static
ν€μλλ₯Ό μ¬μ©ν μ μ λ³μλ ν΄λΉ νμΌ λ΄μμλ§ μ κ·Όν μ μλ μ μ λ³μκ° λλ€. λ€λ₯Έ νμΌμμ μ΄ λ³μλ₯Ό μ κ·Όν μ μλ€.#include <stdio.h>
static int globalVar = 50; // static μ μ λ³μ (μ΄ νμΌ λ΄μμλ§ μ κ·Ό κ°λ₯)
void func() {
printf("globalVar: %d\n", globalVar);
}
int main() {
func();
return 0;
}
#include <stdio.h>
// μ μ λ³μ μ μΈ
int globalVar = 0;
void testFunction() {
// μ§μ λ³μ μ μΈ (λ§€λ² ν¨μκ° νΈμΆλ λλ§λ€ μλ‘ μ΄κΈ°νλ¨)
int localVar = 0;
// static μ§μ λ³μ μ μΈ (μ΄κΈ°νλ ν λ²λ§ μνλκ³ , ν¨μ νΈμΆμ΄ λλλ κ°μ΄ μ μ§λ¨)
static int staticVar = 0;
// λ³μ κ° μ¦κ°
localVar++;
staticVar++;
globalVar++;
// μΆλ ₯
printf("localVar: %d, staticVar: %d, globalVar: %d\n", localVar, staticVar, globalVar);
}
int main() {
printf("Initial globalVar: %d\n", globalVar);
// ν¨μ 1λ²μ§Έ νΈμΆ
testFunction(); // μΆλ ₯: localVar: 1, staticVar: 1, globalVar: 1
// ν¨μ 2λ²μ§Έ νΈμΆ
testFunction(); // μΆλ ₯: localVar: 1, staticVar: 2, globalVar: 2
// ν¨μ 3λ²μ§Έ νΈμΆ
testFunction(); // μΆλ ₯: localVar: 1, staticVar: 3, globalVar: 3
return 0;
}
Initial globalVar: 0
localVar: 1, staticVar: 1, globalVar: 1
localVar: 1, staticVar: 2, globalVar: 2
localVar: 1, staticVar: 3, globalVar: 3
static
λ³μ: λ©λͺ¨λ¦¬μ ν λ²λ§ ν λΉ.