欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C语言无法在函数外部对全局变量进行赋值操作

程序员文章站 2024-01-24 09:04:22
...

好久没有写博客了,今天写一个简短的博客,这是我在学习UCOSIII源码的时候遇到的问题,但是由于源码不太好直白地说明问题,所以我这里用一些其它的例子来介绍。

下面是一个main.c文件的内容

typedef struct{
	unsigned int count;
	float unit_price;
} apple_struct;

apple_struct apple1;
apple1 = {10, 2.1};

int main(void)
{
		printf("apple count is : %d \n", apple1.count);
		printf("apple unit_price is : %f \n", apple1.unit_price);
}

仿佛没有什么问题,但实际上是没法编译通过的,错误出在下面这条语句

apple1 = {10, 2.1};

C语言是不允许我们将全局变量在函数外部进行单独的赋值操作的,我们能做的只是声明,定义。如果非要进行赋值操作,那也只能在定义的时候进行初始化操作,如下所示:

typedef struct{
	unsigned int count;
	float unit_price;
} apple_struct;

apple_struct apple1 = {10, 2.1};

int main(void)
{
		printf("apple count is : %d \n", apple1.count);
		printf("apple unit_price is : %f \n", apple1.unit_price);
}