C 错误:重新声明‘;y2’;没有联系
我试图创建一个程序,接收整数值,并使用atoi将其转换为2的补码整数,并确定所做的转换类型。这是我的密码:C 错误:重新声明‘;y2’;没有联系,c,linkage,redeclaration,C,Linkage,Redeclaration,我试图创建一个程序,接收整数值,并使用atoi将其转换为2的补码整数,并确定所做的转换类型。这是我的密码: #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));
#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 ;
}
编译在Sun Sep 22 20:07:02异常退出,代码为2“
我想知道这个错误的原因
谢谢,您收到的错误正是信息告诉您的
- 您两次声明变量
y2
- 您没有在任何地方声明
y1
- 您不能有两个同名的成员。您的
变量与turn
函数同名turn
在int-Turn()声明的main()之前;有类似于int-Turn()的内容{; 应该是{或 在Main()中,您声明了两次Y2,其中一个应该是Y1 注意:在打开{之后不能有;在您的代码中它就在那里
谢谢..意外地声明了两次y2,而不是y2和y1。对函数名和参数名使用“turn”充其量是可疑的。将该参数用作局部变量更不健康。强制调用方turn()为了证明第一个参数不是用来传递或返回值的,只是为了在返回结果之前不必声明一个局部变量来保存结果“从参数列表中删除,并声明一个局部变量,最好使用不同的名称。奇怪的是,turn函数会编译。turn可能是其中的函数指针,并导致分配给左值的问题。外部turn也会在main中创建错误。”