정수 값을받는 프로그램을 작성하여 atoi를 사용하여 2의 보수 정수로 변환하고 어떤 유형의 순서가 만들어 졌는지 결정합니다.오류 : 연결이없는 'y2'의 재 선언
#include <stdio.h>
#include <stdlib.h>
int turn(int turn, int a1, int b1, int a2, int b2, int a3, int b3){
;
turn = ((a1 * b1 + b1 * a3 + a2 * a3) - (b2 * a3 + a1 * b3 + a2 * b1));
printf("\n value = %d \n", turn);
return(turn);
}
int main(int argc, char *argv[]) {
int x1, y2, x2, y2, x3, y3, turn;
x1 = atoi(argv[1]);
y1 = atoi(argv[2]);
x2 = atoi(argv[3]);
y2 = atoi(argv[4]);
x3 = atoi(argv[5]);
y3 = atoi(argv[6]);
turn = turn(x1, y1, x2, y2, x3, y3);
if(turn == 0) printf("\n Straight \n");
if(turn < 0) printf("\n Right Turn \n");
if(turn > 0) printf("\n Left Turn \n");
return 0 ;
}
그리고 내 오류 : 여기 내 코드입니다
make -k p3
cc p3.c -o p3
p3.c: In function ‘main’:
p3.c:29:19: error: redeclaration of ‘y2’ with no linkage
p3.c:29:11: note: previous declaration of ‘y2’ was here
p3.c:32:3: error: ‘y1’ undeclared (first use in this function)
p3.c:32:3: note: each undeclared identifier is reported only once for each function it appears in
p3.c:38:14: error: called object ‘turn’ is not a function
make: *** [p3] Error 1
컴파일 9 월 (22) 20시 7분 2초 일에 코드 2 비정상적으로 종료 "
나는이의 원인을 궁금 오류.
감사합니다,
기능 이름과 인수 이름 모두에 "회전"을 사용하는 것이 좋습니다. 이 인수를 지역 변수로 사용하는 것이 훨씬 건전하지 못합니다. 호출자가 값을 전달하거나 반환하는 데 사용되지 않는 첫 번째 인수를 증명하기 위해 turn()을 강제 실행하므로 결과를 반환하기 전에 로컬 변수를 선언 할 필요가 없습니다. 나는 여러분이 인수 목록에서 "turn"을 가져 와서 대신 다른 이름으로 지역 변수를 선언하는 것이 좋습니다. –
턴 기능이 컴파일되는 것이 이상합니다. 차례가 그것에 함수 포인터 수 있으며 lvalue에 할당하는 문제가 발생할 수 있습니다. 바깥 쪽에서도 주 –