最近准备嵌入式面试,整理一些嵌入式C语言基础。
全局变量和局部变量区别:
1.分配给全局变量的内存,一直到程序运行结束时才释放。
2.对于在程序块中申明的变量,在块的入口处对其分配内存,在块退出时释放内存,则这种变量称为自动变量。
(a)若程序由一个源文件构成时,全局变量与全局静态变量没有区别。
(b) 若程序由多个源文件构成时,全局变量与全局静态变量不同:全局静态变量使得该变量成为定义该变量的源文件所独 享,即:全局静态变量对组成该程序的其它源文件是无效的。
(c)全局变量具有外部链接的静态;可以在所有源文件里调用;除了本文件,其他文件可以通过extern的方式引用;
静态全局变量的作用:
(a)不必担心其它源文件使用相同变量名,彼此相互独立。
(b)在某源文件中定义的静态全局变量不能被其他源文件
全局变量和局部变量区别:
1.分配给全局变量的内存,一直到程序运行结束时才释放。
2.对于在程序块中申明的变量,在块的入口处对其分配内存,在块退出时释放内存,则这种变量称为自动变量。
3.当一个过程执行完毕,它的局部变量的值就已经不存在,而且变量所占据的内存也被释放。当下一次执行该过程时,它的所有局部变量将重新初始化。
变量的存活期:这一期间变量能够保持它们的值
静态方式存储:静态变量、全局变量
变量由static进行再说明改变其原有的存储方式:
全局变量 --> 静态全局变量 (改变作用域)
局部变量(自动变量) --> 静态局部变量 (改变生存期)
静态全局变量和全局变量有什么区别:(a)若程序由一个源文件构成时,全局变量与全局静态变量没有区别。
(b) 若程序由多个源文件构成时,全局变量与全局静态变量不同:全局静态变量使得该变量成为定义该变量的源文件所独 享,即:全局静态变量对组成该程序的其它源文件是无效的。
(c)全局变量具有外部链接的静态;可以在所有源文件里调用;除了本文件,其他文件可以通过extern的方式引用;
静态全局变量的作用:
(a)不必担心其它源文件使用相同变量名,彼此相互独立。
(b)在某源文件中定义的静态全局变量不能被其他源文件