我在源文件1中有一个函数: 源文件1:
function in Source file 1.
Code:
char day[7];
f1:
{
....
....
....
after some work fill the
day[0]= random number;
.
.
.
.
day[6]=random number;
}
Quote:
Source file 2:
f2:
{
extern dayval[];
//do stuff
}
现在我想从源文件2中的数组中访问那些[7]值。
如果我在执行源文件中的f1之后立即在源文件2中声明数组为extern,则值保持不变或者为零
原谅我的愚蠢我刚刚开始学习C语言而且它已经是一个很好的骑车笑。 我希望你们能用你的建议来启发我
这是访问数据的最佳方式。我正在研究嵌入式系统,有些人认为通过引用传递是一个不错的选择。我很高兴收到您的意见。
此致
答案 0 :(得分:1)
是的,它可以通过将其声明为extern
变量来解决,但它也需要在source1.c中是全局的。无法从范围外部访问局部变量,至少不能通过名称访问。
所以,在source1.c中:
char day[7];
void function1(void)
{
day[0] = ...;
/* and so on */
}
然后在source2.c中:
extern char day[7];
void function2(void)
{
printf("oh, source1 has set day[0] to %c\n", day[0]);
}
当然,您必须确保source1.c中的function1()
在 function2()
之前从source2.c运行,以便初始化该数组。
你可以有一个单独的main.c:
int main(void)
{
function1();
function2();
return 0;
}
然后使用类似的东西(假设在Unix类型的环境中使用gcc)将它们一起编译:
$ gcc -o myprogram main.c source1.c source2.c