Debugging을 하지 않고 연습하는 글입니다.
먼저 코드를 보겠습니다.
#include <stdio.h>
void main() // 반환형 함수형(인수) { }, Entry Function
{
printf("Hello World!"\n);
}
#include<stdio.h>
- # = 전처리 (Pro-Processing)
- include<> = <> 기호 안에 파일을 프로그램에 포함시켜 주는 전처리기
- stdio.h = standard input output.header의 약자로 표준 입출력 관련 파일들의 헤더 파일을 포함하겠다는 뜻
- {} = 함수의 정의의 범위
void main()
- void = 반환(자료)형
- main = 함수형
- () 안 값 = 인수이며, 인수가 정의되어있지 않다면 Entry Function이라고 부름.
- Entry Function은 그냥 인수를 정의하지 않고 값을 나타내는 함수.
printf("Hello World");
- printf = printf(format)으로 문자열을 매개변수로 받는다.
- () 안 값 = 매개변수
- "" = 문자열, String 값을 가져올 수 있는 기능
- \n = 줄 바꿈 기능
- ; = {} 안의 함수들의 마침표 역할, 웬만하면 찍어줍시다.
해석은 모두 끝났지만 궁금증이 생겼습니다.
책에 적힌 코드와 강사님이 쓰신 코드가 다른 것입니다.
int main(void)
{
printf("Hello World!");
return 0;
}
강사님의 코드에는 int가 없고 main과 void의 위치가 다릅니다. 그 이유에 대해 찾아봤고 그에 대한 답을 많은 블로그에서 다루었지만, 초보자가 이해하기엔 많이 어려웠습니다. 하지만, 공통적인 표현을 정리해 가져왔습니다.
- C언어의 자체 표준에선 void main은 허용하지 않고 int main만을 허용합니다.
- int 값을 반환하는 main이 표준 문법이기 때문입니다.
- int 함수는 return(반환값)을 사용하지 않으면 오류가 발생합니다.
- main이 반환하는 값은 해당 프로그램의 상태(종료) 여부를 의미하는 값으로 사용됩니다.
- void는 반환하지 않은 함수의 결과를 위한 함수입니다.
- 즉, void와 main은 반환이라는 것에 있어 같이 있을 수 없는 상반된 사이입니다.
- 그러나, 컴파일러 프로그램 개발자들이 C++에 익숙하여 필요성에 의해 관용적으로 사용되던 void main() 기능을 허용해 준 덕분에 사용할 수 있다고합니다.
- 예시로 void main() { } = int main() { return0; } 두 함수는 같은 결과를 가지고 있습니다.
아직 함수들에 익숙하지않아 이해가 30%정도 되는 것 같지만 배우면서 반복해 읽다보면 이해될 것 같습니다.
끝
'프로그래밍 C언어' 카테고리의 다른 글
연산자(Operators)와 형변환(Type Casting) (0) | 2024.08.09 |
---|---|
변수(Variable)와 상수(Constant) (0) | 2024.08.08 |
고정소수점과 부동소수점의 이해 (0) | 2024.08.08 |
변수와 자료형(Data Type) (0) | 2024.08.07 |
프로그래밍의 시작 Visual Studio 설치 (0) | 2024.08.06 |