본문 바로가기
컴소니/개발

[C 언어] int main(int argc, char** argv) main함수 인자

by 금소니 2023. 1. 12.
반응형

#245

1. main()함수

C언어를 아시는 분이라면 가장 기본적인 main()함수를 아실 것이라 생각됩니다.

소스코드를 짜는데 있어 가장 중요한 부분인데요.

주로 프로그램이 실행되는 말 그대로 main이 되는 부분입니다.

 

main()함수도 다른 함수들과 같이 함수입니다.

보통 main()함수를 사용할 때는 void main()이나 int main()으로 하여 특별한 인자 없이 사용하는데요.

함수에서 인자를 넣어 사용할 경우가 종종 있어 까먹지 않고 정리를 해놓으려고 합니다.

 

2. int main(int argc, char** argv)의 활용

int main(argc, **argv)의 경우 main함수 호출 시 입력되는 값을 활용할 때 사용합니다.

즉, 프로그램 시작 시 입력되는 값을 활용하고자 할 때 사용합니다.

 

그래서 알기 쉽도록 argc, argv로 표현했지만 이 부분은 변경하셔도 됩니다.

각 인자의 값은 아래와 같습니다.

int argc : 함수에 입력되는 값의 개수(정수)

char** argv : 입력되는 값이 저장되는 배열의 시작 주소 (문자열)

(char** argv의 경우 배열로써 char* argv[]로 표현이 가능합니다.)

 

위의 내용은 간단한 프로그램을 통하여 확인이 가능합니다.

이렇게 프로그램을 작성하고 실행을 한 번 해보겠습니다.

 

처음은 프로그램을 실행만 시켜보겠습니다.

프로그램 실행을 위해 입력한 명령어가 인자로 입력이 되어 출력되었습니다.

여기서 입력한 데이터는 하나만 있으니 argc 값은 1이 되고, 값을 저장하는 배열에는 argv[0]에 ./argv가 됐습니다.

 

그럼 여러 개의 데이터를 입력해보도록 하겠습니다.

프로그램을 실행하는 명령어를 포함한 총 네 개의 값을 입력하였더니 argc는 4가 되었고, argv배열에 입력한 값이 모두 저장되어 출력되었습니다.

 

main함수가 정의 되어 있는 라이브러리 소스코드를 좀 더 확인하면 좋을 것 같은데 찾지 못하여 아쉽지만 찾게 된다면 정의가 어떻게 되어있는지 한 번 알아봐야겠습니다.

반응형

댓글