Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[2517] 컴파일러 관련, 다시 질문드립니다. 소스 첨부했어요
로터스 [lotus11] 1300 읽음    2003-04-30 19:51
이번에 기사 시험을 보는데, Visual C++ 로 신청했거든요?
근데 교재는 터보 C밖에 없네요. Visual로 컴파일 하는데 자꾸 warning이 뜨고..
물어볼 사람도 없고 답답하네요.
도움 주시면 감사하겠습니다. 아래는 소스입니다.

--------------------------------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAXLEN 256

struct RecForm {
     char       Field01[7];      // 거래번호(6 바이트)
     long       Field02;         // 단가(5 바이트) * 판매량(3 바이트)
} rec[1000];

void main(int argc, char *argv[])
{
     static char *Line[MAXLEN];                             // 한 라인 저장
     int  i, j, Cnt, Start, End;                           // 첨자(i,j,Cnt), 인수1, 인수2
     FILE *Infp, *Outfp;                                   // 파일 포인터

     static char Temp3[4], Temp5[6];                       // 숫자필드 임시저장
     long Danga, Panme, Point;                             // 단가, 판매량, 이익포인트

     static char ExTemp1[7];                               // 거래번호 정렬시 사용
     long ExTemp2;                                         // (단가*판매량) 정렬시 사용

     Start = atoi(argv[1]);                                // 첫번째 파라미터
     End = atoi(argv[2]);                                  // 두번째 파라미터

     // 입력파일을 입력전용(텍스트 모드)으로 연다.
     Infp = fopen("abc0010.txt", "rt");   

     Cnt = 0;                                              // 구조체 위치변수 초기화
     // 입력부분(조건에 맞는 자료 배열에 저장)
     for(i = 1; i <= End; i++) {
    fgets(*Line, MAXLEN, Infp);
         if(i >= Start) {
            Point = atol(strncpy(Temp3, Line+24, 3));     // 이익포인트
             Danga = atol(strncpy(Temp5, Line+16, 5));     // 단가
             Panme = atol(strncpy(Temp3, Line+21, 3));     // 판매량

             if(Point >= 30) {                             // 이익포인트 30 이상
                 Cnt++;
                 strncpy(rec[Cnt].Field01, Line+0, 6);     // 거래번호
                 rec[Cnt].Field02 = Danga * Panme;         // (단가*판매량)
             }
         }
     }

     // (단가*판매량)의 값에 따라 정렬
     for(i = 1; i <= Cnt-1; i++)
         for(j = i+1; j <= Cnt; j++)
             // 오름차순 정렬, 같은경우 거래번호의 오름차순 정렬
             if((rec[i].Field02 > rec[j].Field02) ||
                ((rec[i].Field02 == rec[j].Field02) &&
                 (strcmp(rec[i].Field01, rec[j].Field01) > 0))) {
                   strcpy(ExTemp1, rec[i].Field01);        // 거래번호 교환
                   strcpy(rec[i].Field01, rec[j].Field01);
                   strcpy(rec[j].Field01, ExTemp1);

                   ExTemp2 = rec[i].Field02;               // (단가*판매량) 교환
                   rec[i].Field02 = rec[j].Field02;
                   rec[j].Field02 = ExTemp2;
             }    

     // 입력파일을 닫는다.
     fclose(Infp);

     // 출력파일을 출력전용(텍스트모드)으로 연다.
     Outfp = fopen("ans1.txt", "wt");
     // 출력파일에 결과값을 출력한다. - 5번째 거래번호
     fprintf(Outfp, "%d  %d  %s\n", Start, End, rec[5].Field01);
     // 출력파일을 닫는다.
     fclose(Outfp);
}

---------------------------------------------------------------------------------------------

컴파일 하면 다음과 같은 compile 결과가 뜹니다...

Compiling...
p1.c
C:\C_IT\Data\p1.c(35) : warning C4047: 'function' : 'const char *' differs in levels of indirection from 'char ** '
C:\C_IT\Data\p1.c(35) : warning C4024: 'strncpy' : different types for formal and actual parameter 2
C:\C_IT\Data\p1.c(36) : warning C4047: 'function' : 'const char *' differs in levels of indirection from 'char ** '
C:\C_IT\Data\p1.c(36) : warning C4024: 'strncpy' : different types for formal and actual parameter 2
C:\C_IT\Data\p1.c(37) : warning C4047: 'function' : 'const char *' differs in levels of indirection from 'char ** '
C:\C_IT\Data\p1.c(37) : warning C4024: 'strncpy' : different types for formal and actual parameter 2
C:\C_IT\Data\p1.c(41) : warning C4047: 'function' : 'const char *' differs in levels of indirection from 'char ** '
C:\C_IT\Data\p1.c(41) : warning C4024: 'strncpy' : different types for formal and actual parameter 2

p1.obj - 0 error(s), 8 warning(s)


물론 소스에 잘못된 부분은 없구요... 단지 이게 Visual C++ 에서도 컴파일이 됐으면
좋겠네요. 어떻게 하면 warning이 안뜰까요?
도움 부탁드립니다....

+ -

관련 글 리스트
2517 컴파일러 관련, 다시 질문드립니다. 소스 첨부했어요 로터스 1300 2003/04/30
2518     Re:컴파일러 관련, 다시 질문드립니다. 소스 첨부했어요 최준호.스페로 1193 2003/04/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.