gpt4 book ai didi

c - 访问数据的最佳实践

转载 作者:行者123 更新时间:2023-11-30 15:38:08 24 4
gpt4 key购买 nike

我在源文件 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 中的数组访问那些 day[7] 值。

如果我在执行源文件中的 f1 后立即在源文件 2 中将数组声明为 extern,这些值将保持不变还是为零

请原谅我的愚蠢,我刚刚开始学习 C 语言,这真是一段痛苦的旅程,微笑。希望大家多提建议,多多指教

这是访问数据的最佳方式。我正在研究嵌入式系统,有人说通过引用传递是一个不错的选择。我很高兴了解您对此的看法。

问候

最佳答案

是的,可以通过将其声明为 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() 先于 source2.c 中的 function2() 运行,命令初始化数组。

您可以有一个单独的 main.c 来执行以下操作:

int main(void)
{
function1();
function2();
return 0;
}

然后使用类似这样的东西将它们全部编译在一起(假设 gcc 在 Unix 类型的环境中):

$ gcc -o myprogram main.c source1.c source2.c

关于c - 访问数据的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21929723/

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