金牌会员
 
- 积分
- 1998
- 金钱
- 1998
- 注册时间
- 2015-10-27
- 在线时间
- 216 小时
|
1金钱
关于MDK函数内定义变量的相关问题,我发现在函数里直接定义一个变量,比如:int var1; //那么即时不进行初始化,那么它打印出来的值是0,也就是MDK默认会对其赋0值操作。
但是:-----------------当我在函数里定义一个结构体变量时(内部有一个成员是:int var2;),比如:
#include "stm32f4xx.h"
#include "sys.h"
#include "uart.h"
tpyedef struct { //这里声明一个结构体数据类型
int var2;
char ch1;
}Var_struct;
int main(void){
Var_struct Var_structure; //定义一个结构体变量
int var1; //定义一个整形变量
printf("打印出来的var1变量的值为:%d\n\r",var1); //值为0 printf("打印出来的结构体成员变量的值为:%d\n\r",Var_structure.var2); //值为随机值。 ??这里为什么会是随机值啊?
}
我发现打印出来的结构体变量成员值printf("打印出来的结构体成员变量的值为:%d\n\r",Var_structure.var2);时,这个Var_structure.var2为什么居然是一个随机值?
我的问题是定义的变量与结构体变量不都是在函数里定义的吗?为什么一个默认被赋为0,而另一个结构体中的成员变量同样是int类型的,居然是一个随机值?
|
|