• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

함수 선언과 정의를 동시에 해도 되나요?

23.04.11 23:31 작성 조회수 606

0

//함수 선언
void p(int num);

int main(void)
{
int num = 2;
p(num);

return 0;
}

void p(int num) //함수 정의
{
printf("num은 %d입니다.\n",num);
}

이것이 책 본문에 나와 있는 내용입니다.

함수 선언따로 정의 따로 되어있는데요.

혹시 아래와 같이 선언과 정의를 동시에 해도 되나요?

//함수 선언 및 정의
void p(int num)
{
printf("num은 %d입니다.\n",num);
}

int main(void)
{
int num = 2;
p(num);

return 0;
}

답변 1

답변을 작성해보세요.

0

작은새님의 프로필

작은새

2023.05.17

네 실행이 가능합니다. 함수를 선언 및 정의하는 부분이 사용되는 부분에 앞서 있으므로 정상적으로 실행됩니다. 다만 선언부와 정의하는 부분을 따로 나누는 것은 코드가 방대해졌을 때 가독성을 위한 것으로 알고 있습니다.

그리고

int main(void)
{
  int num = 2;
  p(num);

  return 0;
}

void p(int num)
{
  printf("num은 %d입니다.\n",num);
}

궁금해서 위의 코드처럼 선언 및 정의하는 부분을 main 아래로 내려서 실행해 보았는데 warning 메시지가 뜨지만 실행은 되네요. 환경에 따라서 실행나 컴파일이 안 될 수도 있겠다는 생각은 듭니다.