单片机-C语言基础知识总结
程序员文章站
2024-03-15 12:40:41
...
单片机-C语言基础知识总结
本文为个人学习笔记,仅供学习参考用,如有侵权,请联系aaa@qq.com
(一)简单理解32位操作系统只能支持4G内存
(4294967295+1)bit / 1024 = 4194304K
4194304K / 1024 = 4096M
4096M / 1024 = 4G
故,32位操作系统最大能带4G内存。64位的操作系统需要更大的内存。
(二)数据类型(❤表示重要程度)
-
数据类型关键字
最常用:char、int、float、double(精度更高)、signed char、unsigned char -
数据类型的字节数❤❤❤❤❤
一个字节=8位
8位(例如二进制1111 1111、十六进制0xFF、十进制255)
u8 ~255
u16~65535
u32~4294967295 -
数据类型的强制转换
u16 a,b; float c; a = 500; b = 200; c = (float)a / (float)b;
-
其他重要知识
(1)中文符号、汉字都是两个字节组成的。
(2)一个英文字母是一个字节。
(3)定义了一个变量,如果没有赋值,他的值是随机的。
(三)条件语句与逻辑运算符
-
if、else if、else用法
if(条件1) { 语句1; } else if(条件2) { 语句2; } else if(条件3) { 语句3; } else { 语句4; }
解析:
如果条件1满足,执行语句1,下面else if和else中的语句2,3,4都不再执行;
如果条件1不满足,则不执行语句1,但是条件2满足,执行语句2,下面else if和else中的语句3,4都不再执行;
如果条件1,2,3都不满足,1,2,3语句都不会执行,直接执行else中的语句4。 -
条件运算符
x = 条件1?语句1:语句2
x1 = (x2 > x3) ? x4 : x5; //表示如果x2>x3为真,x1=x4,否则x1=x5 -
逻辑运算符与或非
与:&&
或 :||
非:!(取反的意思)
(四)左移右移和与或非运算
-
位运算
//位运算,按位与、或 x1 = 0x88; x1 = x1 & 0x01; //x1 = 1000 1000 & 0000 0001 = 0000 0000 x1 = x1 | 0x01; //x1 = 1000 1000 | 0000 0001 = 100 1001
-
左移右移
左移:<<,最高位移出,最低位补0
右移:>>,最低位移出,最高位补0注意:给某位写1用或运算,因为任何数与1相或都得1;给某位写0用与运算,因为任何数与0相与都得0.
x1 = 0x8888; x1 = x1 | 0x0100; x1 = x1 | (1<<8);
(五)函数和条件选择语句switch
- int main(void)中的int表示返回值的类型,void表示定义的参数。
- void suibian(void)表示无返回值,无参数。
- int suibian(a,b,c)表示有返回值,有参数。
- switch语句中的case后一定要加break。
(六)指针、结构体
- 指针
uint8_t x1=90; uint8_t *x2=&x1; printf("%d", x2); //表示打印x2的地址 printf("%d",*x2); //表示打印x2地址的值
- 结构体(形式多样)
- 结构体指针