我有两个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'的多个声明。
有人可以就这个问题给我一个想法吗?
答案 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"
。源文件意味着要编译和链接在一起以生成二进制文件。