Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.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(编译)_C - Fatal编程技术网

未定义对函数文件的引用错误C(编译)

未定义对函数文件的引用错误C(编译),c,C,这是我的函数文件 % gcc -std=c89 -o main main.c /tmp/cccuTfCk.o: In function `main': main_c11e5.c:(.text+0x3c): undefined reference to `swap' collect2: error: ld returned 1 exit status 我只是不知道为什么我总是犯这样的错误 我想我已经完成了相互指点 编译是奇怪还是我的代码不清楚 谢谢。有多个错误 1您需要在定义了swap函数的第二

这是我的函数文件

% gcc -std=c89 -o main main.c
/tmp/cccuTfCk.o: In function `main':
main_c11e5.c:(.text+0x3c): undefined reference to `swap'
collect2: error: ld returned 1 exit status
我只是不知道为什么我总是犯这样的错误

我想我已经完成了相互指点

编译是奇怪还是我的代码不清楚


谢谢。

有多个错误

1您需要在定义了swap函数的第二个文件中包含swap.h

// swap.h

void swap(int *p, int *q);
2您只编译main.c文件,但交换函数在另一个文件中定义。这就是为什么您得到的是对swap函数的未定义引用。您需要编译第二个文件的gcc-std=c89-o main.c name_这两个文件


3您宣布掉期无效。这意味着您不应该从函数返回任何值,并且在将i和j的地址传递给swap函数时也不需要返回任何值。

存在多个错误

// swap.h

void swap(int *p, int *q);
1您需要在定义了swap函数的第二个文件中包含swap.h

// swap.h

void swap(int *p, int *q);
2您只编译main.c文件,但交换函数在另一个文件中定义。这就是为什么您得到的是对swap函数的未定义引用。您需要编译第二个文件的gcc-std=c89-o main.c name_这两个文件

3您宣布掉期无效。这意味着您不应该从函数返回任何值,并且在将i和j的地址传递给swap函数时也不需要返回

// swap.h

void swap(int *p, int *q);
您不能返回任何内容,因为您声明为void返回函数


您不能返回任何内容,因为您声明为void return函数

我想您忘记编译swap.cTurn上的警告:swap不能返回值并返回p,q;将只返回q。什么是返回p,q;该怎么办?在空函数中,也不小于-std=c89。。。明确选择29年前过时的标准修订版可能重复。我认为您忘记编译swap.cTurn警告:swap不能返回值并返回p,q;将只返回q。什么是返回p,q;该怎么办?在空函数中,也不小于-std=c89。。。明确选择有29年历史的过时标准修订版,可能重复。