gpt4 book ai didi

c - 如何在 C 中声明参数(相互依赖)

转载 作者:行者123 更新时间:2023-11-30 17:20:31 26 4
gpt4 key购买 nike

我有一堆参数(整数和 float );我想编写一个 C 代码,其中主程序和函数都引用相同的参数,这样如果我更改其中一个参数,整个代码就会知道我设置的新值。我的代码由 main.c 文件组成,该文件调用 function.c 文件;现在我在主函数和函数中都声明了参数,但我认为这并不健壮(如果我更改主函数中的一个参数并且忘记在函数中也更改它,我会得到错误的结果)。所以问题是:如何声明参数以便只更改一次而不是在我定义的所有地方都更改它?

PS:一些参数依赖于之前声明的其他一些参数

这就是我所做的:我创建了一个 myparameters.h 文件,在其中声明我的参数,如下所示:extern float x;然后我创建了一个 myparamter.c 文件,在其中定义参数的值:float x = 10;

但是我定义的一些参数依赖于其他参数:float a = a + b;因此我收到一条错误消息,如下所示:

warning: initializer element is not a constant expression

最佳答案

术语澄清

您所说的是全局变量,而不是参数。 “参数”一词指的是函数的输入参数:

int my_function(int arg1, char arg2) {

这就是您应该如何将参数传递给函数,而不是通过全局变量。

您的错误

您收到错误是因为您尝试使用编译时不一定已知的值来初始化函数外部的全局变量:

int a = 2;     /* legal */
int b = a + 2; /* not legal */

int main(){ /* the rest of your code */

全局变量只能由常量、宏和硬编码值初始化:

int a = 2; /* legal */
int b; /* also legal */

int main(){
b = a + 2; /* now that you're in a function, you can make your assignment */

关于c - 如何在 C 中声明参数(相互依赖),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28568158/

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