인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

조광현님의 프로필 이미지
조광현

작성한 질문수

홍정모의 따라하며 배우는 C언어

12.7 블록 영역의 정적 변수

함수호출위치 및 메모리

작성

·

253

0

강의를 보는 중간에 항상 함수 호출은 main 함수에서 하던데 비주얼스튜디오에서 main함수위에 하면 오류가 뜨더라고요
예를들어
#include <stdio.h>
 
int func(int num)
{
 int result = num + 3;
 printf("%d", result);
 return result;
}
 
func(3);
 
void main(void)
{
 
}
이렇게 변수처럼 전역변수자리에 함수호출은 허용안되는 건가요?
만약에 된다고 하면 항상 main함수부터 실행한다고 했는데 어떻게 되는건가요?
또한 전역변수처럼 메모리에 끝까지 남아있는건가요?

답변 1

0

#include <stdio.h>

 

int func(int num) {

int result = num + 3;

printf("%d", result);

return result;

}

int a = 3;

func(a);

 

void main(void) {

}

위와 같이 코드를 변경하시면 오류가 없이 작동이 됩니다. 다만, 항상 Main함수에서 코드가 시작 되기 때문에, debug를 해보시면, main함수부터 시작하고 func(a)에 대한 호출은 이루어지지 않아 아무 출력이 없이 코드가 종료됨을 볼 수 있습니다.

조광현님의 프로필 이미지
조광현
질문자

그럼 오류만 뜨지 않고 Main함수위에는 함수를 호출해도 소용이 없는 건가요?

 

조광현님의 프로필 이미지
조광현

작성한 질문수

질문하기