如何从一个C文件访问整数数组到另一个?

时间:2015-08-18 10:15:55

标签: c arrays multiple-files

我有两个C文件,即'Main.c'和'algo.c'。 main.c文件包含一个名为index_array的数组,如下所示:

 #include <stdlib.h>
 #include <stddef.h>
 #include <stdio.h> 
 #include "Main.c"

 int algo();

 int main(){
       int index_array []= {1,2,3,4,5,6};
       algo(index_array); //to call the function from the other file
       return 0;
      }

另一个文件如下所示:

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

int algo(int index_array){
    ///contains an algorithm to perform an operation using the array index from the Main.c file
      }

现在我怀疑的是如何从algo.c文件访问数组index_array[ ]?我在alog.c文件中尝试它的方式并没有让我访问它。相反,它给出了一个错误,说明了'algo'的多个声明。

有人可以就这个问题给我一个想法吗?

1 个答案:

答案 0 :(得分:2)

最简单的方法是更改​​algo()函数签名以接受两个参数,即数组本身和大小。像

这样的东西
 int algo(int *index_array, int size) { ....

那就是说,你应该改变你的前向声明以匹配函数定义的签名。

现在,您可以从 main.c 文件中调用algo,例如

 algo(index_array, sizeof(index_array)/sizeof(index_array[0]));

注意:请从代码中删除#include "Main.c"。源文件意味着要编译和链接在一起以生成二进制文件。