모든 프로그래밍의 시작
뭐 컴퓨터를 사던가 프로그램을 깔던가 그런 것 들을 제외하고
코딩을 처음으로 했을때 무조건 하는 hello world
처음 배웠을 때는 '이건 뭐 나중에 배우고 우선 작성해 나중에 알려줄게' 로 시작했던 hello world가 이젠 대충 뭐 어떻게 굴러가는지 알게 되었다.
#include <stdio.h>
int main(void)
{
printf("Hello World!")
return 0;
}
#include <stdio.h>
#include <stdio.h> 는 C언어에서 자주 사용되는 헤더 파일을 포함시키는 지시어입니다. stdio.h는 "Standard Input Output"의 약자로, 표준 입출력에 관련된 기능을 제공하는 라이브러리입니다.
이것은 라이브러리를 불러오는 것이다.
라이브러리를 왜 불러오느냐?
내 생각에는
나같은 초보들은 구현하기 힘든 것들을 쉽게 쉽게 사용할 수 있게 고수분들이 만들어 준 길이라고 생각한다.
printf("Hello World!")
위 함수를 사용하려면 그냥 우리가 사용할 수 있는 것은 아니다.
컴퓨터가 사람도 아니고 사람이여도 처음부터 말을 할 수 있는 것은 아니다.
컴퓨터가 기존 컴퓨터 사용자들의 불편함 및 원하는 방식으로 사용할 수 있게 컴퓨터가 우리에게 값을 줄 수 있게 만들어 놓은것들을 사용하는 것이다.
그 만들어 놓은것들을 라이브러리 라고 생각한다.
우리는 그중 stdio.h라는 라이브러리를 불러온 것 이다.
int main(void)
C언어에서 주 함수(main function)를 정의하는 구문입니다. 프로그램 실행 시 가장 먼저 호출되는 함수이므로, 모든 C 프로그램은 하나의 main 함수를 가지고 있어야 합니다.
각 부분의 의미는 다음과 같습니다:
int
main 함수가 반환하는 값의 자료형을 나타냅니다. 여기서 int는 정수형을 의미하며, 프로그램이 실행된 후 main 함수가 종료될 때 반환하는 값을 정수로 반환해야 한다는 것을 의미합니다.
프로그램의 종료 상태를 나타내는 종료 코드를 반환하는 데 사용됩니다. 일반적으로 0은 정상 종료를 의미하고, 다른 숫자는 오류가 발생했음을 나타냅니다.
main
main은 프로그램의 시작점을 나타내는 특별한 이름의 함수입니다. 프로그램이 실행되면, 운영 체제는 main 함수를 호출하여 프로그램을 실행합니다.
(void):
void는 main 함수가 매개변수를 받지 않음을 나타냅니다. 즉, 프로그램 시작 시 main 함수에 전달되는 값이 없음을 의미합니다.
만약 main 함수가 명령줄 인수를 받으려면 (int argc, char *argv[])와 같은 형식을 사용할 수 있습니다.
변수 x -> f(x) -> 결과 값 y
이것은 우리가 배운 함수이다.
프로그래밍에서도 함수를 주로 쓰는데 조금 자세히 살펴보면
실험하다보니 길어진 곳 일반 함수와는 다르다.
void는 입력값을 받지 않는 다는 뜻이다.
여기서도 자료형을 넣은 값 변수 x를 넣는다면 x를 활용하여
무언가
를 하기위한 값을 받아오는 곳이다.
보통함수은 그렇지!!! 그러나 main함수에서의 이곳은 주의해야한다!!!!! (지금 나도 몰랐다)
너무 길어서 따로 만들었다. --> 이유
printf("Hello, World!\n");
printf는 출력 함수로, 괄호 안의 문자열을 화면에 출력합니다.
"Hello, World!"는 화면에 출력할 문자열이며, \n은 줄바꿈을 의미합니다.
printf 란 우리가 #include <stdio.h>에서 배운 라이브러리에서 가져온 함수다.
출력을 담당하는 함수이며, 꼭 ("여기") 안에 작성해야 한다.
#include <stdio.h>
int main() {
int a = 10;
float b = 3.14;
printf("정수: %d\n", a); // 정수 출력
printf("실수: %f\n", b); // 실수 출력
return 0;
}
[출력]
정수: 10
실수: 3.140000
그리고 ; 는 세미클론 이라고 하는 것이다.
대부분의 문장에서 사용하지만 나중에 사용하지 않는 문장도 있다.
예를들어
if
for
while
...
주로 {문장을 감싸주는 곳} 이 끝날때는 쓰지 않는다고 알고있으면 편할 것 같다.(?)
return 0; 은 main 함수가 종료될 때 프로그램이 정상적으로 실행되었음을 운영 체제에 알려주는 역할을 합니다.
0을 반환하는 것이 일반적인 정상 종료 코드입니다.
이것은 아까 (void) 보단 덜 골때리지만
원래의 함수에서는 그냥 반환값이다.
근데 main함수에서는 종료 코드로써의 의미를 가진다고한다.
return 0; 이면 정상적으로 종료되었다고 나타나고
return 1; 이면 오류로 인한 비정상적인 종료라고한다.
나머지는 사용자 정의 종료코드라고한다.

그렇다고 한다.
int main(int a)
{
printf("%d", a);
return 0;
}
위 코드를 돌려보니 계속 1만 나오는것이다.
입력도못하고 말이야
어찌저찌 2를 넣어서 2가 나왔지만 3을 넣으니 또 2가 나오는것이다.
참 골때렸다.
이유는
int a = int argc
이것은 메인 함수에 전달되는 정보의 갯수를 의미를 하는 것이였다.
이것을 확인하려
#include <stdio.h>
int main(int argc, char *argv[]) {
printf("명령줄 인수의 개수: %d\n", argc);
// 명령줄 인수를 출력
for (int i = 0; i < argc; i++) {
printf("argv[%d]: %s\n", i, argv[i]);
}
return 0;
}
위 코드를 돌려보면
명령줄 인수의 개수: 4
argv[0]: C:\path\to\your\project\Debug\your_program.exe
argv[1]: arg1
argv[2]: arg2
argv[3]: arg3
이렇게 나온다.
나로썬 참 생각치도 못한 부분이다.
첫번째 인수(Argument)는 프로그램이 실행되는 파일의 위치가 무조건 들어가는 것이였다.
C:\path\to\your\project\Debug\your_program.exe hello world 123
를 실행한다면
명령줄 인수의 개수: 4
argv[0]: C:\path\to\your\project\Debug\your_program.exe
argv[1]: hello
argv[2]: world
argv[3]: 123
처럼 나온다.
그렇다 프로그램을 실행시킬 때 그 위치를 인수로 인식하는 것이다.
메인함수는 조심히 다루어야겠다
역시 난 모르는게 많다.
대충 안다고 생각했는데 대충도아니다.
쉽게 정리할 것 같았는데 몇시간이 지났다.
쓰면서 현타도 살짝 왔버렸다.
이런거 정리하는사람들 대단한 것 같다.
아니 그리고 내 글에있는 곳에서 내 글 특정부분으로 링크 넣고싶은데 이거 어떻게 넣는거지?
걍 [링크이름](#링크 할 제목 이였다)
링크 제목 예시는
#1-include-stdioh
#223-void
#이유
이런것 처럼 모르겠으면 자동 생성된 목차에서 클릭하고 주소창 보면 나온다.
#### 부터는 링크가 안된다. (목차 생성도안됨)