Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 错误:重新声明‘;y2’;没有联系_C_Linkage_Redeclaration - Fatal编程技术网

C 错误:重新声明‘;y2’;没有联系

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));

我试图创建一个程序,接收整数值,并使用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));
  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中创建错误。”