如何在C中声明参数(这些参数相互依赖)

如何在C中声明参数(这些参数相互依赖),c,parameters,C,Parameters,我有一堆参数(整数和浮点数);我想写一个C代码,其中主程序和函数都引用相同的参数,这样,如果我更改其中一个参数,整个代码就会知道我设置的新值。我的代码由一个调用函数.c文件的main.c文件组成;现在我在main和函数中都声明了参数,但我认为这是不可靠的(如果我在main中更改了一个参数,而我忘记在函数中更改它,我会得到错误的结果)。所以问题是:如何声明参数以便只更改一次,而不在我定义的任何地方更改它 PS:一些参数依赖于先前声明的其他参数 下面是我所做的:我创建了一个myparameters.

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

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

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

然而,我定义的一些参数依赖于其他参数:
float a=a+b
;因此,我得到了如下错误消息:

警告:初始值设定项元素不是常量表达式

术语澄清 你说的是全局变量,而不是参数。“参数”一词指函数的输入参数:

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 */

嗯。。。我已经。。。那么让我来编辑这个问题