2010-08-21 4 views
0

minizip()을 호출하기위한 코드가있다. minizip 프로그램의 기본 코드 인 main()이 더 이상 사용되지 않지만, 컴파일 할 때 * minizip int, char **) *. 여기에 코드가 있습니다.argv []를 사용하여 main-like 함수 호출하기

int minizip(int argc, char* argv[]); 

void zipFiles(void) 
{ 
char arg0[] = "BBG"; 
char arg1[] = "-0"; 
char arg2[] = "out.zip"; 
char arg3[] = "server.cs"; 

char* argv[] = {&arg0[0], &arg1[0], &arg2[0], &arg3[0], 0}; 

int argc = (int)(sizeof(argv)/sizeof(argv[0])) - 1; 

minizip(argc, argv); 
} 

int minizip(argc,argv) 
    int argc; 
    char *argv[]; 
{ 
    ... 
} 
+1

0 % Acceptence 비율 !!!!!!!!! 말을해야 행운을 빈다. –

답변

2

이 코드가 모두 동일한 파일에 있습니까? 그렇지 않으면 호출자가 C++ 코드이고 minizip이 C 코드 인 경우 호출자는 extern "C" 블록 내에 minizip 선언이 필요하여 C 함수를 호출하므로 C 연결이 필요함을 나타낼 수 있습니다.

(또는. 복사 오류 메시지를 다시 입력하고 정확한되도록 붙여 넣을 수 없습니다.이 경우, 컴파일러는 가장 가능성이 minizip(int, char**)에 정의되지 않은 참조를보고했다.)

+0

고침 덕분에. – Jookia

1

왜 함수를 선언하는 인수가 다시 :

int minizip(argc,argv) 
    int argc; 
    char *argv[]; 
{ 
    ... 
} 

그것은 '

int minizip(int argc,char *argv[]) 
    { 
     ... 
    } 
+1

함수 매개 변수 선언을위한 레거시 "K & R C"(ISO 이전) 스타일입니다. – jamesdlin

+0

흥미 롭다. gcc에서 작동하지 않는다. – kirbuchi

관련 문제