Bobisland 发表于 2023-10-9 12:21:54

clion里面怎么在一个项目里创建两个.c文件,满足他们两个文件运行不同的代码

两个c文件,一个是插入排序,一个是二分查找,但是报错说我main函数用了两次

isdkz 发表于 2023-10-9 12:22:28

在一个项目中创建两个.c文件,满足它们可以运行不同的代码,需要在一个文件中定义main函数,另一个文件中定义其他函数,然后在main函数中调用其他函数。

例如,在一个名为sort.c的文件中编写插入排序的代码:

void insertionSort(int arr[], int n)
{
    int i, key, j;
    for (i = 1; i < n; i++)
    {
      key = arr[ i];
      j = i - 1;

      while (j >= 0 && arr > key)
      {
            arr = arr;
            j = j - 1;
      }
      arr = key;
    }
}


在另一个名为search.c的文件中编写二分查找的代码:

int binarySearch(int arr[], int l, int r, int x)
{
    if (r >= l)
    {
      int mid = l + (r - l) / 2;

      if (arr == x)
            return mid;

      if (arr > x)
            return binarySearch(arr, l, mid - 1, x);

      return binarySearch(arr, mid + 1, r, x);
    }

    return -1;
}


在一个名为main.c的文件中,调用这两个函数:

#include <stdio.h>
#include "sort.c"
#include "search.c"

int main()
{
    int arr[] = { 12, 11, 13, 5, 6 };
    int n = sizeof(arr) / sizeof(arr);

    insertionSort(arr, n);

    int x = 13;
    int result = binarySearch(arr, 0, n - 1, x);
    (result == -1) ? printf("Element is not present in array")
                   : printf("Element is present at index %d", result);

    return 0;
}


这样,您就可以在一个项目中创建两个.c文件并运行不同的代码了。

Mike_python小 发表于 2023-10-9 12:23:25

在一个项目中创建多个 .c 文件是非常常见的,你可以按照以下步骤进行操作:

1. 在 CLion 中打开你的项目。
2. 在项目文件目录中,右键点击你的项目文件夹,选择 "New" -> "C/C++ Source File"。
3. 输入一个新的文件名,比如 insertion_sort.c,并点击 "OK"。
4. 重复上述步骤,创建另一个文件,比如 binary_search.c。

现在你的项目中就有两个 .c 文件了:insertion_sort.c 和 binary_search.c。

如果你在这两个文件中都写了 main 函数,并且尝试同时编译运行这两个文件,就会出现错误提示 "multiple definition of 'main'",因为一个程序中只能有一个 main 函数。

为了解决这个问题,你需要将其中一个文件中的 main 函数改名。比如,你可以将 binary_search.c 中的 main 函数重命名为 binary_search_main,然后在另一个文件 insertion_sort.c 中保留 main 函数。

在 binary_search.c 文件中的 main 函数改名后的代码示例:


#include <stdio.h>

int binary_search_main() {
    // your binary search code here
}

int main() {
    // your other code here
}


这样做之后,就不会再出现 "multiple definition of 'main'" 的错误了。你可以编译和运行这两个文件,它们将会被作为独立的程序执行。

希望这个回答对你有帮助!如果还有其他问题,请随时提问。

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}
页: [1]
查看完整版本: clion里面怎么在一个项目里创建两个.c文件,满足他们两个文件运行不同的代码