Programming/C Win32 MFC2009.03.24 11:16
main 함수의 기본 프로토타입은 int main(int argc, char *argv[]) 이다.
물론 귀찮아서 void main()으로 주로 쓰긴 하지만, 인자를 받기 위해서는 저 프로토타입을 써야 한다.
아무튼 막상 인자로 받다가 그 인자를 만들어 내려니 자꾸만 안되서 머리를 데굴데굴 굴려봤다.




음.. argv가 argument array인데,
argv[0]은 실행프로그램(자기자신)의 경로+이름
argv[1] 부터 인자가 들어 간다.
그리고 마지막은 null이 들어간다.

    int argc = 2;
    char str1[] = "a.out";
    char str2[] = "/dev/fb0";
    char str3[] = "";
    char *strs[] = {str1,str2,str3};
    char **argv = strs;
아무튼 꼼지락 대면서 겨우겨우 맞춰서 넣은 argc, argv 값들.. 하아..
조금 더 추려내면

    int argc = 2;
    char *strs[] = {"a.out", "/dev/fb0", ""};
    char **argv = strs;


간단하게 하는 방법은 정녕없는 것인가!
Posted by 구차니

댓글을 달아 주세요

  1. 오옷.. 제가 아는 C언어 이야기.
    main은 그냥 main이면 안되나요. 왜 머리에 int, void 등이 붙는지 -ㅅ-...

    2009.03.24 17:52 [ ADDR : EDIT/ DEL : REPLY ]
    • ㅎㅎ 데니즈 님을 위해서 c언어 강좌를 시작해 봐야하는건가요? ㅋ

      앞부분에 붙는건 함수는 블랙박스로, 어떤 값을 받으면 어떤 값을 돌려주는 식으로 설계를 하기 때문입니다.

      예를 들어 실 생활을 예를 들자면
      cm->ft 변환기가 있다고 하면
      입력은 cm 단위로 입력하고
      내부에는 어떻게 변화가 되던 신경안쓰고
      출력은 ft단위(대략 30cm = 1ft)로 받게 됩니다.

      일부 함수들은 값을 돌려주지 않기 때문에
      돌려주는 값이 없는 함수를 void로 해주는 것입니다
      (물론 파고들면 void라고 해서 꼭 값을 돌려주지 않는 건 아니니 나중에 알아보세요 ㅋ)

      2009.03.24 18:20 [ ADDR : EDIT/ DEL ]
    • 오옷..
      해주신다면 저야 영광입니다. ㅠ

      흠... 그런거군요.
      얼른 C언어의 기초를 배워야겠습니다.
      헤헷..

      2009.03.24 20:14 [ ADDR : EDIT/ DEL ]