1. 基础知识
1.1 C语言笔试题
1.1.1 用宏定义得到一个数组所含的元素个数
char array[30];
#define ARRAY_SIZE(a) (sizeof((a))/sizeof((a[0])))
参考:预处理、const、static与sizeof-使用宏定义得到一个数组所含的元素个数
1.1.2 定义函数指针从程序固定地址(0)开始执行
int main(void)
{
void (* func)(void);
func = (void (*)()) (0x0000);
func();
}
参考:C语言中将绝对地址转换为函数指针以及跳转到内存指定位置处执行的技巧
1.1.3 volatile的含义及作用
直接存取原始内存地址
- 易变的。并不是直接指示该变量可以任意改变。而是告诉编译器,该变量(绑定内存中的值)时可能随时改变的,