함수에 명령 행 인수를 전달하여 전역 변수를 채우려고합니다. 이 작업을 수행 할 때 경고 메시지 (아래 참조)와 펑키 리턴 번호 (예 : 예상 49 대신 52)가 표시됩니다.전역 변수를 채우기 위해 argv를 전달하십시오.
힌트를 주시면 감사하겠습니다. 이것은 HW입니다. 그러나 전반적인 과제 중 아주 작은 부분입니다. 암시 적 함수 선언은 main()
기능
void initializeNumJoeys(int argc, char *argv[]);
이유 이상이 넣어
#include <stdio.h>
#include <stdlib.h>
#include "kangarooHeaders.h"
int numJoeys = MIN_NUM_LEGAL_JOEYS - 1;
int main (int argc, char* argv[])
{
initializeNumJoeys(argc,argv);
printf("%d", numJoeys);
}
void initializeNumJoeys(void argc, void *argv[])
{
char line[LINE_LEN];
if (argc > MAMAS_NUM_JOEYS_CMD_LINE_INDEX)
numJoeys = *argv[1];
}
argv_test.c:13: warning: conflicting types for ‘initializeNumJoeys’
argv_test.c:9: warning: previous implicit declaration of ‘initializeNumJoeys’ was here
속임수인지 확실하지 않지만 문제를 이해하는 데 도움이됩니다. http://stackoverflow.com/questions/434763/are-prototypes-required-for-all-functions-in-c89-c90-or -c99 –
'void argc' ??? 'void * argv []'??? 호환 가능한 인수를'initializeNumJoeys'에 전달해야하며'void'도'int'와 호환되지 않으며'void **'는'char ** '와 호환되지 않습니다. –