정적전역변수 질문입니다
알찬해
질문 제목 : 질문 내용 :
#include stdio.h
int svar=0;
int main(void)
{
extern int svar;
printf(%d\n,svar);
svar++;
printf(%d\n,svar);
return 0;
}
int main2(void)
{
extern int svar;
printf(%d,svar);
return 0;
}
를 실행하면 0 1 만 뜹니다
원래 세개가 출력되야하는데 두개만 출력되네요...뭐가잘못된건가요...
그리고 정적전역변수와 그냥 전역변수의 차이가 잘 이해가 가지않습니다.
전역변수는extern을 써서 수정을 하면 다른 함수에서도 값이 수정한 값으로 계속 바뀌어져있고
정적전역변수는 수정이 아예 안된다는 뜻인가요??
-
미련곰탱이
한프로젝트에 main 함수가 2개일순없습니다.
함수 이름을 main2로 짓는 습관은 매우 안좋습니다.
변수나 함수 작명을할때 시간이 더 걸리더라도 그역할에 맞게 작명하는 습관을 들이세요.
GlobalPrint 라던가 printSvar 이라던가 .. -
베네딕트
완벽한이해 정말 감사합니다...
-
개굴츼
main함수가 끝나면 프로그램이 끝나기때문에
main함수 안에서 main2(); 이런식으로 호출해야합니다
#include stdio.h
int svar=0;
int main2(void);
int main(void)
{
extern int svar;
printf(\%d\\n\ -
소1유물
int main2(void)란 함수에서 호출을 했는데 왜 안되나요...
메인함수에서 호출을 하려면...어떻게해야하는지... -
돌삥
두개만 출력되는이유는 간단합니다
메인함수에서 printf출력함수를 2번만 썻기떄문입니다
그래서 함수를 만들어놨지만 그함수를 메인함수에서 호출을 하지않았기 떄문이죠
아직 함수에 대한 이해를 제대루 못하고있는거 같아 함수쪽 공부를 다시하시는것을 추천드립니다