主题:变量初始化的重要性 我们经常在软件编程中会遇到一种很奇怪的问题,程序调试的好好的,突然加了一行代码之后或者调换了一下初始化顺序,程序的功能就出错了,把这行代码注释掉之后,哎,程序又正常了,但加的这一行代码和我程序的功能完全没有关系。 遇到这种问题,大概率是因为我们某个变量没有进行初始化导致,所以这种问题,首先要查一下定义的变量是否都有初始化。 下面举一个例子: 两次调用TMR_Config只是位置不同,但TMR_DIV的值却不同,这样就会导致定时器功能不正常。 A: B:
我们在配置中用到了一个局部变量TMR_TimerBaseInitType TMR_TMReBaseStructure1; 局部变量是在栈上动态分配的,也就是每次调用TMR_Config,TMR_TimerBaseInitType TMR_TMReBaseStructure1分配的内存地址会不一样,如果我们没有将变量的值初始化,那边这个变量的值就会是一个随机值。 因此在软件编程过程中声明的变量一定要进行初始化再使用,特别是一些变量比较多的结构体,一定要保证所有的变量都有初始化。
|