今天是学习嵌入式相关内容的第二天,我们开始进入到对C语言的学习。
在学习C语言之前,我们需要先来了解一些基础性知识。
1.进制转换:二进制、八进制、十进制、十六进制
二进制:0 1
八进制:0 1 2 3 4 5 6 7
十进制:0 1 2 3 4 5 6 7 8 9
十六进制:0 1 2 3 4 5 6 7 8 9 a b c d e f
二进制、八进制、十六进制 -> 十进制
对应位 * 对应位的权值再求和
十进制 -> 二进制、八进制、十六进制
十进制数除以进制数得到的余数逆序排列
二进制 八进制 十六进制:
八进制1位对应二进制3位
十六进制1位对应二进制4位
2.程序如何在C语言中被运行起来?
程序(外存中)
执行(加载到内存中)
程序运行结束(回收内存空间)
3.数字在内存中的存储:
正数在计算机中存放对应的二进制数
负数在计算机中存放补码
1.原码
2.反码
3.补码
4.内存数据
4.gcc编译的流程步骤:
gcc filename.c
1.预处理:gcc -E filename.c -o filename.i
处理和#号相关代码
1.头文件展开
#include
2.宏定义替换
#define M 100
3.条件编译
#if #elif #else #endif #ifndef #ifdef
2.编译: gcc -S filename.c -o filename.s
将C语言程序编译成汇编代码
3.汇编:gcc -c filename.c -o filename.o
将汇编代码编译成二进制代码
4.链接 : gcc filename.c -o filename
将多个二进制代码链接成为一个可执行程序
在此之后,我们正式进入到对C语言的学习
1.数据类型分类
1.基本数据类型:
整形数据 short int long
short (signed short)
unsigned short
int (signed int)
unsigned int
long (signed long)
unsigned long
浮点型数据 float double
字符型 char
逻辑类型(泊尔类型) bool
缺省类型(void)
2.构造数据类型:
结构体
共用体
枚举类型
2.基本数据类型
1.整数类型:
名称 占内存空间 值域范围 存储方式
short: 短整形 2个字节空间 -32768 - 32767 补码
unsigned short: 无符号短整型 2个字节空间 0 - 65535 对应的二进制数
int: 整形 4个字节空间 -21亿 - 21亿 补码
unsigned int: 无符号整形 4个字节空间 0 - 42亿 对应的二进制数
long: 长整型 8个字节空间 -2^63 - 2^63 -1 补码
unsigned long: 无符号长整型 8个字节空间 0 - 2^64 对应的二进制数
练习:
编写程序测试数据类型所占字节数:
short 2
int 4
long 8
float 4
double 8
char 1
void 1
%ld:占位符,输出控制符
2.浮点数类型:
所有的浮点数类型均为有符号类型,没有无符号类型的概念
float 单精度浮点数类型(最多表示6-8位有效数字),4个字节 1位符号位 + 8位指数位 + 23位尾数位
double 双精度浮点数类型(最多表示12-14位有效数字),8个字节 1位符号位 + 11位指数位 + 52位尾数位
浮点数 -> 二进制形式 -> 科学计数法转换 -> 小数点后存入尾数位中 -> 指数位+偏移数(float:127 double:1023)以二进制形式存入指数位中
3.字符型:
char
a .. z
A .. Z
# ? ..
ASCII码表:
字符和数字的对应关系
a -> 97
名称 内存空间大小 值域范围 存储方式
unsigned char 1个字节 0 - 255 存储字符在ASCII码表中对应数字的二进制形式
signed char 1个字节 -128 - 127
4.逻辑类型:
bool
名称 内存空间大小 值域范围 存储方式
泊尔类型 bool 1个字节 true 1
false 0
在C语言中所有的非0值均为逻辑真值,0值为逻辑假值
5.缺省类型:
void ,搭配函数和指针使用
3.常量和变量:
1.常量: 在程序运行过程中值不允许发生改变的量
2.变量: 在程序运行过程中值可以发生改变的量
3.表达式:由一个或者多个运算符连接的变量和常量组成的式子
1.整型常量:
默认为int类型
100 int类型
100l long类型
100u unsigned int类型
100ul unsigned long类型
100L
100U
100UL
0123 八进制常量
0x1a 十六进制常量
2.整型变量:
1.变量要先定义再使用
变量定义的形式: 数据类型 变量名;
1.变量名可以由字母、数字、下划线构成不能以数字开头
2.变量名不能与C语言关键字重名
3.变量名最好不要与库函数重名
4.变量名最好是见名知意
驼峰法:
int TempNum;
int MaxCnt;
int MinNum;
int AvgScore;
内核法:
int temp_num;
int max_cnt;
int min_cnt;
int avg_score;
2.变量拥有存储空间,也有值域范围
3. 浮点型常量:
默认为double类型
3.1415 double类型
3.1415f float类型
3.1415e8
3.1415e-8
3.1415E8
3.1414E-8
4. 浮点型变量:
double d;
float f;
5.字符型常量:
'a' 'A'
'~' ' '
'\'' : '号
'\n' : 换行符
'\t' : 横向制表符
'\v' : 纵向制表符
'\r' : 回车符
'\b' : 退格符
'\\' : \符
'1' : 字符1
'\0' : 字符\0
'1' -> ASCII码表 -> 49
'0' : 48
0 : 0
'\0' : ASCII码值为0 用来标识字符串的结尾
'\123' : 八进制123对应的字符
'\x32' : 十六进制32对应的字符
6.字符型变量:
char ch;
7.字符串常量
8.标识常量
3.7答案: