嵌入式学习——C语言基础——day2

1. gcc的编译过程

1.1 预处理

        处理和 " # " 相关的代码

        gcc -E filename.c -o filename.i

        1. 头文件

        2. 宏定义

        3. 条件编译  

1.2 编译

        将c语言代码编译成汇编代码

        gcc -S filename.c -o filename.s

1.3 汇编

        将汇编代码编译成二进制代码

        gcc -c filename.c -o filename.o 

1.4 链接

        将多个二进制代码链接成一个可执行代码

        gcc filename.c o filename

2. 进制转换

2.1  二进制、八进制、十六进制   ->   十进制    对应位 * 对应位的权值再求和

2.2  十进制  ->  二进制、八进制、十六进制      十进制数除以进制数得到的余数逆序排列

2.3  八进制一位对应二进制三位

       十进制一位对应二进制四位

3. 数据的存储

3.1 正数存对应的补码(与原码相同)储存在内存中

3.2 负数经过原码、反码、补码存储在内存中

        -123(先去掉符号位)

        原码:111 1011

        反码:000 0100

        补码:000 0101

4. 基本数据类型

4.1 整形(short  int  long)

        signed short        -2^15 ~ 2^15-1

        unsigned short        0 ~ 2^16-1

        signed int        -2^31 ~ 2^31-1

        unsigned int        0 ~ 2^32-1

        signed long        -2^63 ~ 2^63-1

        unsigned long        0 ~ 2^64-1

4.2 字符型

        signed char        -128 ~ 127

        unsigned char        0 ~ 255

        存储字符在ASCII码表中对应的二进制数到内存中

4.3 浮点型(浮点数类型均为有符号,没有无符号类型)

        float            4字节        存储类型(1符号位+8指数位+23尾数位)    

        double        8字节        存储类型(1符号位+11指数位+52尾数位)

                浮点数 -> 转换成为对应的二进制形式 -> 二进制科学计数法形式 
                -> 获得尾数位(小数点后) -> 获得指数位(+127 float  +1024 double ) 
                -> 存入浮点数类型中(float: 1符号位 + 8指数位 + 23尾数位    double: 1符号位 + 11指数位 + 52尾数位)

4.4 缺省类型(void)

4.5 bool类型(逻辑类型)

5. 构造数据类型        

        5.1  结构体

        5.2 共用体

        5.3 枚举

6. 变量和常量

6.1 常量:在程序运行过程中值不能被改变的量称为常量

        1. 整形常量(默认为signed int)

        2. 浮点型常量(默认为double)

        3. 字符型常量

        4. 字符串常量

        5. 标识常量(宏定义)

                只是代码的替换,最好大写加括号

6.2 变量:在程序运行过程中值可以发生改变的量称为变量

        1. 变量名要求

                1.变量名只能由字母、数字、下划线构成,不能以数字开头
                2.变量名不要与C语言关键字重名
                3.变量名最好不要与库函数重名
                4.变量名最好是见名知意

        2. 变量初始化

                定义变量的时候为变量赋初值

注意:

                    0       :  0               -> 0000 0000
                    '0'     :  字符0    -> 48  -> 0011 0000
                    '\0'    :  字符\0   ->  0  -> 0000 0000

                    '\0' 和 0 是等价的
                    '0' 和 48 是等价的

                

        

        

                 

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值