嵌入式C学习

一、位运算

1、and运算:&

运算规则:

1 & 1 = 1:true & true = true

1 & 0 = 0 : true & false = false

2、or 运算 |

or运算是指如果一个操作数或多个操作数为 true,则逻辑或运算符返回布尔值 true;只有全部操作数为false,结果才是 false。

3、xor异或运算^

True ⊕ False = True

False ⊕ True = True

False⊕ False = False

True ⊕ True = False

4、not取反运算~

先将初始数值转换成二进制数,再取得二进制数的补码,之后对补码的每一位(包括第一位的符号位)进行运算:即将0变为1、将1变为0。得到的是最终结果的补码(到达这一步后所得的二进制数为正数,由于正数的原码、反码、补码相同,后面的运算可以忽略,视此步得到的为最终结果的二进制数),要转换为最终结果的原码则需再次取补码,就能得到计算结果。

5、左移运算<<(不太理解)

6、右移运算>>(不太理解)

二、静态变量

静态变量Static Variable)在计算机编程领域指在程序执行前系统就为之静态分配(也即在运行时中不再改变分配情况)储存空间的一类变量。与之相对应的是在运行时只暂时存在的自动变量,即局部变量与以动态分配方式获取存储空间的一些对象,其中自动变量的存储空间在调用栈上分配与释放。

三、extern变量

extern最基本的用法是声明全局变量的,声明:声明和定义是有区别的。声明不等于定义,声明只是指出了变量的名字,并没有为其分配存储空间;定义指出变量名字同时为变量分配存储空间,定义包含了声明。extern的作用是扩大全局变量的作用域,本来全局变量的作用域是从定义处开始直到文件结束,使用extern提前声明之后就变成从声明处开始,直到文件结束。

四、关键字const

关键字const用来定义常量,如果一个变量被const修饰,那么它的值就不能再被改变

优点:

1、预编译指令只是对值进行简单的替换,不能进行类型检查

2、可以保护被修饰的东西,防止意外修改,增强程序的健壮性

3、编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值