gpt4 book ai didi

创建头文件并在 C 中测试它

转载 作者:行者123 更新时间:2023-12-04 20:03:59 25 4
gpt4 key购买 nike

我在同一目录中有文件:

选择排序.c

#include <cs50.h>
#include "selection_sort.h"

void selection_sort(int values[], int n)
{
for (int i = 0; i < n; i++)
{
int min_index = i;
for (int j = i+1; j < n; j++)
{
if (values[j] < values[min_index])
{
min_index = j;
}
}

int temp = values[i];
values[i] = values[min_index];
values[min_index] = temp;
}
}

注意:这个 selection_sort() 在我之前的使用中运行良好。

选择排序.h

#include <cs50.h>
void selection_sort(int values[], int n);

最后一个文件是测试文件,命名为测试选择排序.h

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

#include "selection_sort.h"


int test_array[] = {2,4,7,5,9,1,3,6,8};

int main()
{
int size = sizeof(test_array);
selection_sort(test_array,size);
for (int i = 0; i < size; i++)
{
printf ("sorted %d", test_array[i]);
}
}

但它在我编译时显示对“selection_sort”的 undefined reference :

$ make test_selection_sort

....undefined reference to `selection_sort'

我想了解定义的头文件的问题和我的错误使用?


编辑:

我现在可以制作文件了:

$gcc -o selection selection_sort.c test_selection_sort.c
$./selection

最佳答案

错误消息很可能意味着您未能包含编译生成的 .o 文件 selection_sort.c .仅仅包含头文件是不够的,尽管这很重要。

 gcc -c selection_sort.c
gcc -c test_selection_sort.c
gcc -o test_selection_sort selection_sort.o test_selection_sort.o

还有许多其他方法可以完成同样的事情。如果您要创建多个效用函数,请考虑使用 ar工具将它们全部放入对象库,然后将库包含在 -l 中选项。

关于创建头文件并在 C 中测试它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45418667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com