main()함수에서는 5를 할당한 i를 선언하고
또 다른 함수를 만들어 10을 할당한 j를 선언하여
각 함수에서 출력해보자.
#include <stdio.h>
int getprint(int j) {
j = 10;
printf("%d\n", j);
return 0;
}
int main() {
int i, j = 0;
i = 5;
printf("%d\n", i);
getprint(j);
}
가장 일반적이라면 위와 같은 코드로 작성할 수 있다.
이 때 우리는 getprint()함수에 매개변수를 통해 j의 값을 전달해줄 수 있다.
왜냐하면 getprint에서는 j가 선언되어있지않고 main() 함수 범위에서만 사용이 가능하기 때문이다.
한국어 느낌으로 말하자면...
i와 j는 main() 지역에서 선언되어있고 매개변수를 통해 getprint() 지역에서도 값을 전달받았다.
그렇다면 i 이든, j 이든 처음부터 선언을 해주면 되지않나?!
일단 가능은 하다!
가능은 한데...
#include <stdio.h>
int i, j;
int getprint() {
j = 10;
printf("%d\n", j);
return 0;
}
int main() {
i = 5;
printf("%d\n", i);
getprint();
}
해당 코드는 i 와 j 를 미리 선언해주고 값을 할당하고 출력을 하였다.
즉 i 와 j 는 전역에서 쓸 수 있다! (전역변수다!)
물론 해당 코드에 이와 같이 쓰는건 편하긴 하다!
하지만 이렇게 쓰지 않는 이유는....
긴 코드를 작성하면 매우 많은 변수들을 선언할텐데
저렇게 전역변수를 쓰면 꼬일 수도 있고.. 겹칠 수도 있다.
그리고 긴 코드에서 전반적으로 공통된 변수를 선언하여 사용한다면
오류발생시 수정할 때 원하는 부분만이 아닌 전반적인 수정이 필요할 수도..ㅠㅠ
'프로그래밍 언어 > C언어' 카테고리의 다른 글
C언어 - 포인터 기초 (0) | 2021.02.17 |
---|---|
C언어 - static (0) | 2021.02.15 |
C언어 - 숫자 표현 범위 (0) | 2021.02.03 |
C언어 - 배열 문법 (0) | 2021.01.25 |
C언어 - 배열과 함수 (0) | 2021.01.24 |