int main(int argc, char* argv[])로 매개변수를 주는 이유는?

왜 main함수에 매개변수를 명령어 개수, 명령어 저장 값을 주는 건가요?

인자를 주어야만 하는 상황은 왜 일어나는 건가요?

써야 될 때가 있다면 그 이유는 무엇인가요?

구글링 해도 나오지 않아 질문해 봅니다 ㅠㅠ

    4개의 답변이 있어요!

    • 안녕하세요.

      우선 main에 parameter를 주는것은 약속입니다.

      그럼 언제 사용되냐 인데요, C언어로 프로그램을 하면 실행가능한 파일을 얻게 됩니다.

      예를 들면 test.c를 compile하고 링크하면 test.exe가 만들어지게 되구요,

      만약 이 test.exe아 csv파일을 받아서 주소록을 만드는 프로그램이라면 test.exe address.csv 이렇게 하면 address.csv 파일이름을 입력으로 받아들이게 됩니다.

      마찬가지로 dir과 같은 명령어의 옵션도 이렇게 매개변수로 처리가 됩니다.

      즉 프로그램 당시에 옵션을 만들거나 혹은 입력값을 따로 받아야 하는 경우 사용하게 됩니다.

    • 안녕하세요~! 아하(Aha) 지식답변자 다라닝입니다.

      질문하신 내용에 대하여 아래와 같이 답변 드립니다.

      복수의 함수를 선언해서 코딩을 할때,

      매개변수가 몇 개 인지, 어떤 값을 리턴해줄지 등을 고려해서 함수를 구분해주고 있기 때문입니다.

      꼭 필요한 부분은 아니기때문에 없어도 코딩은 가능하지만

      점점 복잡한 코딩을 해나갈때는 반드시 필요해지는 부분입니다.

      부족하지만 도움이 되셨기를 바라며 추가적인 문의가 필요하시면 답변 부탁드려요!

    • 실행할때 매개변수를 줘야 할 때가 있거든요. 입력값으로 말이죠.

      예를 들어 파워포인트.exe라는 실행파일이 있다고 치면, 실행할 파일을 파워포인트.exe xxx.pptx라고 넣어 줄수 있어요.

      이때 main 함수 매개변수가 몇개의 매개변수가 들어왔는지 어떤 이름의 매개변수가 들어왔는지 파악할 수 있습니다.

    • "왜 main함수에 매개변수를 명령어 개수, 명령어 저장 값을 주는 건가요?

      인자를 주어야만 하는 상황은 왜 일어나는 건가요?

      써야 될 때가 있다면 그 이유는 무엇인가요?"

      라고 질문을 하셨는데요

      그 이유는 다음과 같습니다

      예를 들어 c언어로 작성한 프로그램을 컴파일하여 okgood.exe 실행파일을

      만들었다면?

      저 실행파일 실행시 okgood.exe wow 최고야

      라고 뒤에 파라미터를 붙이면?

      okgood 의 main에 적어진 argv 에 의해

      wow 최고야를 변수로 담게 되어

      "wow 정말 최고야?" 이렇게 출력할 수 도 있습니다

      즉, 외부파라미터를 c언어 내부에서 변수로 활당하여 사용하기 위한것이라고 보시면 됩니다