各位大侠,
在学习STM32中遇到如下疑惑
file 1 中C语句如下
static u8 fac_us=0; //定义了静态变量参数
void delay_init(u8 SYSCLK)
{
SysTick->CTRL&=0xfffffffb;
fac_us=SYSCLK/8;
fac_ms=(u16)fac_us*1000;
}
在file 2中引用了函数 delay_init(u8 SYSCLK);
问题:1,由file1 可知fac_us为静态变量,其作用范围为file1,若file2中调用则其作用域到了file2中,是不是有问题?(事实证明没问题,或者说因为引用了这个函数,所以函数相关的变量定义也跟着编译过去了?)
2,个人觉得这里可以用动态变量定义fac_us,不太明白为何这里要采用静态变量的定义。
这是正点原子(例说STM32程序中的源码)
十分感谢!
|