Static变量和函数有什么特点?
<1>全局变量VS static全局变量:
全局变量作用于整个程序,而static全局变量只作用于定义该变量的源文件。Static变量只初始化一次,防止被其他文件单元引用;
<2>局部变量 VS static局部变量:
局部变量在每次函数被调用时都会被初始化,而static局部变量只初始化一次,下次引用依据上一次的结果;
<3>普通函数 VS static 函数:
Static函数只能在定义该函数的文件中被调用,在内存中只有一份; 普通函数在每次调用时维持一份拷贝。
嵌入式系统中的ROM,RAM有什么区别?
嵌入式系统中一般使用带有ROM+RAM的flash, 下载程序后,代码段,静态数据放在ROM中; 程序运行时,部分代码段、数据段被加载到RAM中,放时在RAM中分配堆栈,供进程使用。
嵌入式系统中通常使用flash作为程序代码,文件系统的存储部件,断电后不会丢失程序和系统参数。一旦开电启动,CPU将flash中的代码段搬到RAM中运行。这样可避免频繁改写flash使其寿命减短。
Union 和 Struct有什么区别?
Union在每个时刻只有一个成员是可见有效的(一个变量多个类型);
Static 同一时刻所有成员都是可见有效的(多个变量多个类型);
Union的长度等于最长的成员的长度;
Static的长度等于所有成员之和。


