[완료]c를 처음 접해보는 초보입니다.
글쓴이: synn / 작성시간: 월, 2010/04/12 - 10:30오후
안녕하세요. 눈팅을 주로 하다가 이번에 방통대를 입학하면서 처음으로 c를 접해보는 newbie입니다. :)
공부를 하다가 궁금한 점이 생겨서 글을 쓰게 되었습니다.
c를 작성하다 보면 무조건적으로 "main()"함수를 사용하는 거 같은데, 이것의 사용법(?)을 잘 모르겠습니다.
editplus의 "hello world"를 보면
int main(int argc, char *argv[])
라고 되어 있는데, 어느 때 int main()함수를 써야 하는 건지, 또 소괄호 안에 int argc, char *argv[]는 왜 넣어야 하는지 궁금하네요. 검색을 잘못 한건지 무슨 내용인지도 잘 모르겠고....
혼자 끙끙 대다가 염치없이 글을 써봅니다. :)
시원한 답변 부탁드립니다.
Forums:
int main int argc char
int main int argc char **argv 만으로 검색해도 줄줄이 나오네요.
'검색을 잘못한 것'과 '무슨 내용인지 모르겠다'는 원인과 결과의 관계가 아닙니다.
검색으로 나온 내용이 이해가 안된다면, 그 내용을 인용하여 어떤 부분이 이해가 안되는지를 질문해주세요.
어차피 질문 내용만으로는 검색하면 금방 나올거같은 내용 이상의 대답은 기대하기 어려우실 것입니다.
음...단순하게 개념을
음...단순하게 개념을 잡기가 힘들다는 얘기였습니다. 이해를 해야 하는데, 이해가 되지 않는 그런거죠.
왜 main안에 int argc, char *argv[]가 있고,
어떤 때에는 int main(void)이고, 어떤 때는 main()이고.....
int main(int argc,
int main(int argc, char*argv[])
이런 식으로 써서 만든 소스를 컴파일해서 나온 실행 파일이 a 라고 합시다.
그 실행파일 a 를 실행시킬 때 매개변수 받은 것을 활용하기 위해 씁니다.
예를 들어 실행파일 a 가 입력 받은 임의 갯수의 숫자를 더하는 프로그램이라면
a 1 254 258
이런 식으로 실행하면 1+254+258 의 결과를 출력 시킬 수 있도록 하는 거죠.
int main() 이런 식으로 해 놓은 것은 실행시킬 때 매개변수 받을 필요가 없다는 거고...
http://sebul.sarang.net/
세벌 https://sebuls.blogspot.kr/
C 프로그램은 main
C 프로그램은 main 함수로부터 시작됩니다.
프로세스를 생성해내는 것은 OS이고(뭐 실제로는 부모프로세스가 되겠지만) int main(어쩌구)에서 int 는 반환형으로 프로그램이 종료될 때 OS에 리턴값을 넘겨주는 역할을 합니다. 일반적으로 void형이 아닌 대부분의 함수와 똑같은 역할이겠죠.
안에 들어가는 값(파라미터) 역시 일반 함수를 call 할때 쓰이는것과 마찬가지입니다.
다만 프로그램 실행시에 main함수에 넘겨주는 역할을 하지요.
int argc는 아규먼트의 개수,
만약에 프로그램 이름이 test이고 ./test 만 입력하여 실행하는 프로그램이라면 argc의 개수는 1개가 되겠고 char* argv의 첫번째 포인터(인덱스 0번)가 가리키는 아규먼트 이름은 test가 됩니다.
만약에 프로그램 실행시에 다른 아규먼트를 입력 받아야 한다면 순차적으로 증가하게 되겠죠.
예로 이런 코드를 보시면 어느정도 이해가 가시리라 봅니다.
일단 예제부터 작성해보세요 :)
...흠 -_-; 코드가 이상하게 붙는군요-_-;;
잘 알아서 수정해서 해보시기 바랍니다 --;
http://www.acm.uiuc.edu/webmo
http://www.acm.uiuc.edu/webmonkeys/book/c_guide/1.3.html
여기를 참고하세요.
표준에서 말하는 main의 prototype은 두 가지로,
int main(void)
int main(int argc, char *argv[])
입니다.
main() 같은 식으로 정의하는 것은 옛날 방식입니다.
답변 감사합니다.
답변 감사합니다. 아직은 잘 모르겠는데, 답변 달아주신 것들 차근차근 곱씹어 가면서 읽어봐야 겠네요. :>
C를 처음 하신다면........
아직 메인함수에 대해 파악하시려고 하시는것보다
자료형 같은 사용방법에 익숙해 진다음에 이해하시는게 훨씬 쉬울껍니다
---------------------------
@beramodo
댓글 달기