智能汽车嵌入式软件开发基础篇-嵌入式C语言基础1

数据类型  
    基本类型:整型  浮点型  字符型    枚举
    构造类型:数组  结构体  共用体
    指针类型:
    空类型:void
    10  100
    int a ----->0x1000000

整型:二进制: 0 1    0101
      八进制:0 7   111  ------ %o
    十进制:0 9    100 ------ %d
    十六进制:0 ~F : 0xff -----> %x

    格式转换,10进制转2进制,x/2取余,从下到上排列

如100 ------->1100100 ---------> 0 * 2^0 + 0 * 2^1 + 1*2^2....

    100    0
     50    0
     25    1
     12    0
      6    0
      3    1    
      1

  数据类型,在智能汽车嵌入式软件开发过程中,是核心配置的类型,决定数据的长度,芯片资源的大小

    字符型: char     1 byte= 8 bit 0 ~ 2^8-1 
    短整型:short    2 byte= 16bit 0 ~ 2^16 -1 
    整型:  int      2 byte(16位)  4byte(32位) 0 ~2 ^ 32 -1 

    补码 = 原码取反 + 1 负数:31:1  正数:31:0
    负数存储在内存中是补码
    %d:打印时原码
    %x:打印的是补码

字符:英文字母 数字  标点符号          

    'a','A'... 一个汉字 = 两个字符
转义字符:


浮点数:
    float:单精度   6~7位  %f      4byte 
    double:双精度  16~17位 %lf    8byte

小数:3.14 
指数:2.14E3


    char        1byte  -128~127 
    short       2byte  -32768~32767
    int         4byte  -2^31 ~ 2^31 -1

    float       4byte 
    double      8byte


long  长型
short 短型
signed 有符号
unsigned 无符号

自动转换
    int a = 1.5     float ------> int
    float b = 1     int -------->float

    char,short ---->int ---->unsigned ------>long ------>double<---float
 

运算符与表达式
    (1)算术: + - * / %
        运算的数据都是整型 结果也时整型  有浮点数 double
        取模运算两侧的数据都是整型
    (2)关系:
        < : a < 4
        <=:
        > :
        >=:
        ==:
        !=:
    非0为真  0:假
    1 :真
    0 :假

    结合性:左---->右   6 > 3 > 1 
    优先级: 1 == 3 < 4 1 
    (3)逻辑:&& || !
    
        A        B        &&   || 
        1        1        1     1
        1        0        0     1
        0        1        0     1
        0        0        0     0

        A       !
        1       0
        0       1
    (4)赋值
        变量 = 表达式
        i = j = 3 + 4;
    
        +=    a += 3   a = a + 3;
        -=
        *=
        /=
        %=

    
表达式:逗号表达式  
    表达式1,表达式2.....表达式n

    b = (a = 4,3 * 4,a * 2)
条件表达式
    表达式1 ? 表达式2:表达式3    

    max = ((a > b) ? a : b);
    结合性:右---->左
    a > b ? a:b >c?b:c

位运算,是芯片的地址左移>>,切换地址,基址+位运算,获得不同的IO口

位运算:
    &:按位与
    |:按位或
    ^:异或
    ~:按位取反
    <<:左移
    >>:右移

    5 & 4 =4 
    0 1 0 1
    0 1 0 0

    10 | 25 = 27 

    1 0 1 0
      1 1 0 0 1
      1 1 0 1 1

      30 ^ 15= 1 0 0 0 1 17
      1 1 1 1 0
      0 1 1 1 1

    ~50 
    0 0 1 1 0 0 1 0

    1 1 0 0 1 1 0 1 = 205

    0x3 << 5 = 96
    0x8 >> 2 = 2

清0:&
置1:|

汽车上控制语句,基本都是事件性语句,基本都用if 语句切换到下一个状态,状态机语句

条件语句 
    if()
    {
        
    }

    if ()
    {
    
    }
    else
    {
        
    }

    if ()
    {
    
    }
    else if()
    {
        
    }
    else
    {
    
    }

    if ()
    {
        if ()
        {
        
        }else{
        
        }
    }else{
        
    }

    switch(整型表达式){
        case 数值1:语句1;break;        
        case 数值2:语句2;break;        
        case 数值3:语句3;break;        
        case 数值4:语句4;break;        
        ......
        default:语句n+1;
    }

循环语句  循环控制语句 
for  while do...while 


while(条件){
    code
}
条件不成立  退出循环

do{

}while(条件);


for (index = 0;index < 10;index++)


break:跳出循环
continue:跳过本次循环

goto:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
宋宝华嵌入式 C/C++语言精华文章集锦 C/C+语言 struct 深层探索 ............................................................................2 C++中 extern "C"含义深层探索........................................................................7 C 语言高效编程的几招...............................................................................11 想成为嵌入式程序员应知道的 0x10 个基本问题 .........................................................15 C 语言嵌入式系统编程修炼...........................................................................22 C 语言嵌入式系统编程修炼之一:背景 ............................................................22 C 语言嵌入式系统编程修炼之二:软件架构 ........................................................24 C 语言嵌入式系统编程修炼之三:内存操作 ..........................................................30 C 语言嵌入式系统编程修炼之四:屏幕操作 ..........................................................36 C 语言嵌入式系统编程修炼之五:键盘操作 ..........................................................43 C 语言嵌入式系统编程修炼之六:性能优化 ..........................................................46 C/C++语言 void 及 void 指针深层探索 .................................................................50 C/C++语言可变参数表深层探索 .......................................................................54 C/C++数组名与指针区别深层探索 .....................................................................60 C/C++程序员应聘常见面试题深入剖析(1) ..............................................................62 C/C++程序员应聘常见面试题深入剖析(2) ..............................................................67 一道著名外企面试题的抽丝剥茧 ......................................................................74 C/C++结构体的一个高级特性――指定成员的位数 .......................................................78 C/C++中的近指令、远指针和巨指针 ...................................................................80 从两道经典试题谈 C/C++中联合体(union)的使用 ......................................................81 基于 ARM 的嵌入式 Linux 移植真实体验 ................................................................83 基于 ARM 的嵌入式 Linux 移植真实体验(1)――基本概念 ...........................................83 基于 ARM 的嵌入式 Linux 移植真实体验(2)――BootLoader .........................................96 基于 ARM 的嵌入式 Linux 移植真实体验(3)――操作系统 ..........................................111 基于 ARM 的嵌入式 Linux 移植真实体验(4)――设备驱动 ..........................................120 基于 ARM 的嵌入式 Linux 移植真实体验(5)――应用实例 ..........................................135 深入浅出 Linux 设备驱动编程 .......................................................................144 1.Linux 内核模块..............................................................................144 2.字符设备驱动程序 ...........................................................................146 3.设备驱动中的并发控制 .......................................................................151 4.设备的阻塞与非阻塞操作 .....................................................................157

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值