欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

单片机-C语言基础知识总结

程序员文章站 2024-03-15 12:40:41
...

单片机-C语言基础知识总结

本文为个人学习笔记,仅供学习参考用,如有侵权,请联系aaa@qq.com

(一)简单理解32位操作系统只能支持4G内存

单片机-C语言基础知识总结
(4294967295+1)bit / 1024 = 4194304K
4194304K / 1024 = 4096M
4096M / 1024 = 4G
故,32位操作系统最大能带4G内存。64位的操作系统需要更大的内存。

(二)数据类型(❤表示重要程度)

  1. 数据类型关键字
    最常用:char、int、float、double(精度更高)、signed char、unsigned char

  2. 数据类型的字节数❤❤❤❤❤
    一个字节=8位
    8位(例如二进制1111 1111、十六进制0xFF、十进制255)
    u8 ~255
    u16~65535
    u32~4294967295
    单片机-C语言基础知识总结

  3. 数据类型的强制转换

    u16 a,b;
    float c;
    a = 500;
    b = 200;
    c = (float)a / (float)b;
    
  4. 其他重要知识
    (1)中文符号、汉字都是两个字节组成的。
    (2)一个英文字母是一个字节。
    (3)定义了一个变量,如果没有赋值,他的值是随机的。

(三)条件语句与逻辑运算符

  1. 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。

  2. 条件运算符
    x = 条件1?语句1:语句2
    x1 = (x2 > x3) ? x4 : x5; //表示如果x2>x3为真,x1=x4,否则x1=x5

  3. 逻辑运算符与或非
    与:&&
    或 :||
    非:!(取反的意思)

(四)左移右移和与或非运算

  1. 位运算

    //位运算,按位与、或
    x1 = 0x88;
    x1 = x1 & 0x01;  //x1 = 1000 1000 & 0000 0001 = 0000 0000
    x1 = x1 | 0x01;  //x1 = 1000 1000 | 0000 0001 = 100 1001
    
  2. 左移右移
    左移:<<,最高位移出,最低位补0
    右移:>>,最低位移出,最高位补0

    注意:给某位写1用或运算,因为任何数与1相或都得1;给某位写0用与运算,因为任何数与0相与都得0.

    x1 = 0x8888;  
    x1 = x1 | 0x0100;   
    x1 = x1 | (1<<8);
    

    单片机-C语言基础知识总结

(五)函数和条件选择语句switch

  1. int main(void)中的int表示返回值的类型,void表示定义的参数。
  2. void suibian(void)表示无返回值,无参数。
  3. int suibian(a,b,c)表示有返回值,有参数。
  4. switch语句中的case后一定要加break。
    单片机-C语言基础知识总结

(六)指针、结构体

  1. 指针
    uint8_t x1=90;
    uint8_t *x2=&x1;
    printf("%d", x2);  //表示打印x2的地址
    printf("%d",*x2);  //表示打印x2地址的值
    
  2. 结构体(形式多样)
    单片机-C语言基础知识总结
  3. 结构体指针
    单片机-C语言基础知识总结