嵌入式学习第一课作业
1.位运算:
& 与运算符,相对于二进制 如果两个位都是1,结果为1,否则结果0。
int a = 0001
int b= 0011
int c=a&b=0001
| 或运算符,相对于二进制,如果只要任一表达式的一位为 1,则结果中的该位为 1。否则,结果中的该位为 0。
int a= 0001
int b= 0011
intc=a|b=0011
^ 异或运算符,相对于二进制如果两个运算位相同,则结果为0,否则为1。
int a= 0001
int b= 0011
int c=a^b=0010
~ 取反运算符,相对于二进制 每一个都取反 0变为1,1变为0.
int a = 00011100010
int b=~a=11100011101
>>位右移
<<位左移
2.静态变量
static声明的函数和变量不能在另一个文件中引用,也就是说,如果加了 static,就会对其它源文件隐藏,无法进行调用。用这个函数可以在不同文件用相同的变量。
- 存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。在下次使用静态变量时,则不会在去初始化。
- 默认初始化初值为0。在静态存储区共有两种变量存储:全局变量和 static 变量,而且在静态数据区,内存中所有的字节默认值都是0x00
- 总结:首先 static 的最主要功能是隐藏,其次因为 static 变量存放在静态存储区,所以它具备持久性和默认值0。
-
#include <stdio.h> #include <stdlib.h> int main() { static int a=1; a++; printf("%d",a); return 0; }
3.extern 变量
-
对于extern申明变量可以多次,但定义只有一次
4.const
由于使用#define定义常量具有缺陷 ,所以用 const 关键字定义常量更加好一些。
#include <stdio.h>
#include <stdlib.h>
int main()
{
const float pi= 3.14;
int r=5;
int a=pi*r*r;
printf("%d",a);
return 0;
}