嵌入式开发–C语言基础

学习目标:

嵌入式开发–C语言基础


学习内容:

  1. gcc编译流程
  2. 进制转换
  3. 正负数在计算机中的存储
  4. 基本数据类型

学习时间:

2024年4月16日


学习产出:

思维导图

1.gcc编译流程

1.1预处理

处理# 后面的内容(如#include)。

    *#define 
    #if 
    #endif
    #elif
    #else
    #ifdef
    #ifndef*
gcc -E filename.c -o filename.i 

1.2编译

将代码编译成中级语言的内容。
将C语言代码编译成汇编代码

gcc -S filename.c -o filename.s

1.3汇编

再将代码编译成汇编语言内容。
将汇编代码编译成二进制代码

1.4链接

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

gcc filename.c -o filename

2.进制转换

二进制、八进制、十六进制 -> 十进制转换: 对应位 * 对应位的权值再求和
十进制 -> 二进制、八进制、十六进制转换: 十进制数除以进制数得到的余数逆序排列
十进制 -> 二进制:
二进制 -> 八进制、十六进制:八进制1位对应二进制3位
十六进制1位对应二进制4位

3.正负数在计算机中的存储

3.1正数补码为该数的二进制形式

3.2负数补码为原码(二进制)->反码->补码得到其中的二进制形式

4.基本数据类型

4.1整数类型

short 短整型,占2个字节
int 整形,占4个字节
long 长整型,占8个字节

unsigned 无符号类型
signed 有符号类型(默认)
sizeof:获得数据类型或者变量在内存中所占字节数

4.2 字符类型

char,占1个字节

4.3浮点类型

float 单精度浮点数类型,占4个字节 存储方式1符号位 + 8指数位 + 23尾数位 精确到 6-8位有效数字
double 双精度浮点数类型,占8个字节 存储方式1符号位 + 11指数位 + 52尾数位 精确到15-16位有效数字

4.4缺省类型

void
搭配函数或指针使用,表示类型缺省

4.5泊尔类型(逻辑类型)

bool true: 1 flase: 0
非0值均为逻辑真值
0值为逻辑假值

5变量与常量

5.1常量

5.1.1整形常量
默认为 signed int

100
0100 八进制常量
0x100 十六进制常量
0X100 十六进制常量
100l 长整型100
100L 长整型100
100u unsigned int
100U unsigned int
100ul 无符号长整形
100UL 无符号长整形

5.1.2浮点型常量
默认为double

3.1415
3.14f float类型
3.14e15 科学计数法
3.14e-15

5.1.3字符常量
需要带 ‘’

‘a’
‘A’
‘!’

转义字符:
‘’’
‘\’
‘\n’ 换行符
‘\r’ 回车符
‘\t’ 横向制表符
‘\v’ 纵向制表符
‘\b’ 退格符
‘\0’ 字符’\0’等价于0
‘\八进制数’ 八进制数对应的字符
‘\141’ 八进制141对应的字符 ‘a’
‘\072’ ‘:’
‘\x61’ 十六进制61对应的字符 ‘a’
‘0’ 字符0 等价于48

5.1.4字符串常量
字符串末尾存在一个\0字符
“abc” ‘a’+‘b’+‘c’+‘\0’

5.1.5标识常量
#define

5.2变量

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

5.2.2变量使用场景
存储数据值的时候
1.变量类型需要与要储存的数据类型保持一致
2.防止数据值超过变量的值域范围

5.2.3变量初始化
变量未经初始化为随机值(不要使用未经初始化的变量)
初始化:定义变量的时候为变量赋初值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值