嵌入式工程师必备0x10到题目
宏定义
1.用预处理指令#define声明一个常数,用于表明1年中有多少秒
#define 宏名 宏体
宏名:大写字母表示
#define SECOND_OF_YEAR (365*24*3600)
int的常量
数据声明
修饰符的使用总结
类型修饰符
auto、register、static、const、extern、volatile
对内存资源存放位置的限定
资源属性中位置的限定
修饰符的使用总结
关键字static的作用是什么?
1、修饰局部变量
默认局部变量在栈空间存在,生存期比较短
局部静态化,局部变量在静态数据段保存,生存期非常长
2、修饰全局变量
防止重命名,限制变量名只在本文件内起作用
3、修饰全局函数
防止重命名,限制该函数只在本文件内起作用
关键字const有什么含意?
C:只读,建议性 不具备强制性
关键字volatile有什么含意?并给出三个不同的例子
防止编译器优化
它修饰的变量,该变量的修改 可能通过第三方来修改
位操作
设置a的bit3
unsigned int a;
a | =(0x1 << 3)
不加= a是不变的
清除a的bit 3
a&=~(0x1 << 3)
访问固定内存位置
在某工程中,要求设置一绝对地址为0x67a9的整型变量的值为0xaa66.编译器是一个纯粹的ANSI编译器。写代码去完成这一任务。
int *p = (int *)0x67a9;
p[0] = 0xaa66;
*((int *)0x67a9) = 0xaa66;