嵌入式学习第一周

01 嵌入式学习第一周
day02
1、文件属性
源文件:以.c作为扩展名 头文件:以.h作为扩展名
2、函数返回值:函数在所有工作结束之后用一个数字表示他的工作结果。0为正常结束,1为非正常结束
Return关键字:a、立刻结束函数的执行,任何时候都可以起到这个作用;b、指定返回值的数值,只有当关键字后面有数值时才可以起到这个作用,后面的数值就是返回值。
3、预处理指令:以#做开头,不是以;做结尾。标准c阶段遇到的预处理指令都可以把文件里的内容替换成其他内容。如:#include 可以把一个头文件的内容包含到当前文件中。(只能包含头文件,不能包含源文件) 预处理指令需要使用相对路径表示被包含你头文件的位置。
4、 相对路径写在<>中间表示以系统中预先规定好的一组目录一次作为起点查找头文件。
相对路径写在“”中间表示首先以当前文件所在目录作为起点查找,然后再以系统中预先规定好的一组目录一次作为起点查找。(区别在于:是以预先规定好的目录还是当前文件所在目录作为起点)
5、多行注释:可以在语句中间插入。
6、gcc 命令选项
-E 只处理所有预处理指令
-c 只完成预处理和编译(处理结果是以.o作为扩展名的文件,这种文件叫目标文件。执行不包含主函数的文件)
-o 用来决定最终可执行文件的名称
-std=c89/-std=c99 决定按照哪个版本的规范进行编译(默认按照c89规范编译)
7、标准函数:如printf标准输出函数(头文件中需要包含stdio.h) 可以在双引号中使用占位符把数字转移到双引号后面,这个数值也可以是一个计算公式的结果。
8、计算机内存由大量的字节组成,每个字节可以记录一个数字。
每个字节有一个编号,这个编号叫做字节的地址,不同字节的地址不同。
所有字节的地址从0开始向上递增。
不同字节之间有前后顺序,地址小(编号小)的在前,大的在后。
9、内存中有几个相邻的字节可以合并成一个整体用来记录数字。
内存里用来记录一个数字的所有字节叫做一个存储区。一个存储区只能记录一种类型的数字。
存储区的地址是它所包含字节中最前面的字节的地址。
10、C语言中用变量代表存储区(对变量的操作就是对存储区的操作),变量必须先声明才能使用,可以在一条语句中声明多个同类型变量。(如:int num,num1;)
11、赋值语句可以向变量里放一个数字,需要使用赋值操作符(=)。=使用的时候左边的内容必须可以代表一个存储区(左值),变量是一种左值。=右边的内容必须可以当做数字使用。等号的作用就是可以把右边的数字放到左边的存储区里。
12、变量的初始化:在声明变量时对变量进行赋值。C语言中所有变量都必须初始化。可以把变量当做数字使用(如:int num=10;num+5;其中最后句语句的结果是15,但num还是为10,因为最后语句的结果没有放入num的存储区)
13、存储区的地址也可以代表存储区,变量名称前加&可以计算出变量代表的存储区的地址。可以使用%p作为占位符把地址数据显示在屏幕上(%num也可以作为输出)
14、变量可以用来代表一组数字(变量在不同的时候代表不同的数字)

Day03
1、char:字符类型。一共包含256个不同的整数,其中每个整数对应一个字符。(ASCII码表)所有字符数据被分成两组,每组包含128个。(0到127,-128到-1,128到155)
‘\n’ 换行
‘\r’ 回车
‘\’ 字符\
‘\’’字符’
‘\”’字符”
2、short:短整数类型。包含65536个不同的整数,其中一半是非负数,另一半是负数。这些数字以0为中心向两边扩展。
3、long:长整型类型。包含2的32次方个不同的整数,其中一半是非负数,另一半是负数。这些数字以0为中心向两边扩展。
4、int:整数类型。与long类型一样
5、在有符号类型前面加上unsigned关键字,使之成为对应的无符号类型。如:unsigned char、unsigned int。(1234为有符号类型)
6、无符号类型和对应的有符号类型所包含的整数个数相同,但是不包含负数。
7、所有只包含整数的类型所包含的数字范围是互相重叠并逐渐扩大的,越靠近0的数字包含它的数据类型就越多。
8、程序里不加小数点的数字后面加字母u就表示数字的类型是无符号整数类型。
9、浮点类型:带小数点数字,分为单精度和双精度。程序中带小数点的数字默认为双精度浮点类型,在数字后面加f,则记录为单精度浮点类型。
double:双精度浮点类型可以记录更多小数点后面的数位。
float:单精度浮点类型。
10、C语言允许扩展新的数据类型,叫做复合数据类型。需要先创建再进行使用。
11、布尔类型:只包含0和1两个整数,0为假,1为真。真假均叫做布尔值。任何整数都可以当做布尔值使用。其中0为假,其他值均为真。
12、数据类型和占位符的对应关系:
char和unsigned char %c
Short %hd
Unsigned short %hu
Long %ld
Unsigned long %lu
Int %d
Unsigned int %u
Float %f或%g
Double %lf或%lg(%f和%lf会保留小数点后面多余的0,%g和%lg不会)
13、不同数据类型之间的区别主要取决于不同类型的存储区所包含的字节个数不同。
14、Sizeof关键字可以用来计算一个存储区所包含的字节个数。关键字后面的小括号可以写任何能当做数字使用的内容。括号里对任何存储区内容的修改不会真正发生。
15、Scanf标准函数可以在程序运行时把用户在键盘上输入的数字记录到存储区。(必须包含头文件stdio.h)如:scanf(“%d”,&num);
如果用户输入的内容和程序里要求的格式不一致,程序就无法获得数字。因此双引号内不要写不是占位符的内容。
16、一个字节可以分为8段,每段可以用来记录0或1。

Day04
1、八进制占位符%o
2、十六进制方式表示的数字要以0x做开头,用占位符%x或%X表示。用%x,显示结果的所有字母为小写;用占位符%X,显示的所有字母为大写。显示结果不是以0x为开头。
3、操作符!是一个单目逻辑操作符,可以对一个布尔值求反
4、为操作符可以直接操作二进制数位的内容:
~ 单目位操作符 根据一个数字计算出另外一个数字,这两个数字所有二进制数位的内容都不同(按位求反)
双目位操作符 与(&)或(|)异或(^) 异或:同为0,不同为1
5、移位操作可以把一个数字里所有二进制数位的内容统一向左或向右移动那个位置。>> 表示向右移位; << 表示向左移位;都是双目位操作符。左边是将要进行移位操作的数字,右边是要移动的数位。有符号类型数字右移后的空位填充符号位的内容,无符号类型数字填充0
左移n位=乘以2的n次方;右移n位=除以2的n次方
占位符%p可以线束地址数据,*可以作为单目操作符使用,可以根据地址找到地址来源的存储区

Day0501
day02
1、文件属性
源文件:以.c作为扩展名 头文件:以.h作为扩展名
2、函数返回值:函数在所有工作结束之后用一个数字表示他的工作结果。0为正常结束,1为非正常结束
Return关键字:a、立刻结束函数的执行,任何时候都可以起到这个作用;b、指定返回值的数值,只有当关键字后面有数值时才可以起到这个作用,后面的数值就是返回值。
3、预处理指令:以#做开头,不是以;做结尾。标准c阶段遇到的预处理指令都可以把文件里的内容替换成其他内容。如:#include 可以把一个头文件的内容包含到当前文件中。(只能包含头文件,不能包含源文件) 预处理指令需要使用相对路径表示被包含你头文件的位置。
4、 相对路径写在<>中间表示以系统中预先规定好的一组目录一次作为起点查找头文件。
相对路径写在“”中间表示首先以当前文件所在目录作为起点查找,然后再以系统中预先规定好的一组目录一次作为起点查找。(区别在于:是以预先规定好的目录还是当前文件所在目录作为起点)
5、多行注释:可以在语句中间插入。
6、gcc 命令选项
-E 只处理所有预处理指令
-c 只完成预处理和编译(处理结果是以.o作为扩展名的文件,这种文件叫目标文件。执行不包含主函数的文件)
-o 用来决定最终可执行文件的名称
-std=c89/-std=c99 决定按照哪个版本的规范进行编译(默认按照c89规范编译)
7、标准函数:如printf标准输出函数(头文件中需要包含stdio.h) 可以在双引号中使用占位符把数字转移到双引号后面,这个数值也可以是一个计算公式的结果。
8、计算机内存由大量的字节组成,每个字节可以记录一个数字。
每个字节有一个编号,这个编号叫做字节的地址,不同字节的地址不同。
所有字节的地址从0开始向上递增。
不同字节之间有前后顺序,地址小(编号小)的在前,大的在后。
9、内存中有几个相邻的字节可以合并成一个整体用来记录数字。
内存里用来记录一个数字的所有字节叫做一个存储区。一个存储区只能记录一种类型的数字。
存储区的地址是它所包含字节中最前面的字节的地址。
10、C语言中用变量代表存储区(对变量的操作就是对存储区的操作),变量必须先声明才能使用,可以在一条语句中声明多个同类型变量。(如:int num,num1;)
11、赋值语句可以向变量里放一个数字,需要使用赋值操作符(=)。=使用的时候左边的内容必须可以代表一个存储区(左值),变量是一种左值。=右边的内容必须可以当做数字使用。等号的作用就是可以把右边的数字放到左边的存储区里。
12、变量的初始化:在声明变量时对变量进行赋值。C语言中所有变量都必须初始化。可以把变量当做数字使用(如:int num=10;num+5;其中最后句语句的结果是15,但num还是为10,因为最后语句的结果没有放入num的存储区)
13、存储区的地址也可以代表存储区,变量名称前加&可以计算出变量代表的存储区的地址。可以使用%p作为占位符把地址数据显示在屏幕上(%num也可以作为输出)
14、变量可以用来代表一组数字(变量在不同的时候代表不同的数字)

Day03
1、char:字符类型。一共包含256个不同的整数,其中每个整数对应一个字符。(ASCII码表)所有字符数据被分成两组,每组包含128个。(0到127,-128到-1,128到155)
‘\n’ 换行
‘\r’ 回车
‘\’ 字符\
‘\’’字符’
‘\”’字符”
2、short:短整数类型。包含65536个不同的整数,其中一半是非负数,另一半是负数。这些数字以0为中心向两边扩展。
3、long:长整型类型。包含2的32次方个不同的整数,其中一半是非负数,另一半是负数。这些数字以0为中心向两边扩展。
4、int:整数类型。与long类型一样
5、在有符号类型前面加上unsigned关键字,使之成为对应的无符号类型。如:unsigned char、unsigned int。(1234为有符号类型)
6、无符号类型和对应的有符号类型所包含的整数个数相同,但是不包含负数。
7、所有只包含整数的类型所包含的数字范围是互相重叠并逐渐扩大的,越靠近0的数字包含它的数据类型就越多。
8、程序里不加小数点的数字后面加字母u就表示数字的类型是无符号整数类型。
9、浮点类型:带小数点数字,分为单精度和双精度。程序中带小数点的数字默认为双精度浮点类型,在数字后面加f,则记录为单精度浮点类型。
double:双精度浮点类型可以记录更多小数点后面的数位。
float:单精度浮点类型。
10、C语言允许扩展新的数据类型,叫做复合数据类型。需要先创建再进行使用。
11、布尔类型:只包含0和1两个整数,0为假,1为真。真假均叫做布尔值。任何整数都可以当做布尔值使用。其中0为假,其他值均为真。
12、数据类型和占位符的对应关系:
char和unsigned char %c
Short %hd
Unsigned short %hu
Long %ld
Unsigned long %lu
Int %d
Unsigned int %u
Float %f或%g
Double %lf或%lg(%f和%lf会保留小数点后面多余的0,%g和%lg不会)
13、不同数据类型之间的区别主要取决于不同类型的存储区所包含的字节个数不同。
14、Sizeof关键字可以用来计算一个存储区所包含的字节个数。关键字后面的小括号可以写任何能当做数字使用的内容。括号里对任何存储区内容的修改不会真正发生。
15、Scanf标准函数可以在程序运行时把用户在键盘上输入的数字记录到存储区。(必须包含头文件stdio.h)如:scanf(“%d”,&num);
如果用户输入的内容和程序里要求的格式不一致,程序就无法获得数字。因此双引号内不要写不是占位符的内容。
16、一个字节可以分为8段,每段可以用来记录0或1。

Day04
1、八进制占位符%o
2、十六进制方式表示的数字要以0x做开头,用占位符%x或%X表示。用%x,显示结果的所有字母为小写;用占位符%X,显示的所有字母为大写。显示结果不是以0x为开头。
3、操作符!是一个单目逻辑操作符,可以对一个布尔值求反
4、为操作符可以直接操作二进制数位的内容:
~ 单目位操作符 根据一个数字计算出另外一个数字,这两个数字所有二进制数位的内容都不同(按位求反)
双目位操作符 与(&)或(|)异或(^) 异或:同为0,不同为1
5、移位操作可以把一个数字里所有二进制数位的内容统一向左或向右移动那个位置。>> 表示向右移位; << 表示向左移位;都是双目位操作符。左边是将要进行移位操作的数字,右边是要移动的数位。有符号类型数字右移后的空位填充符号位的内容,无符号类型数字填充0
左移n位=乘以2的n次方;右移n位=除以2的n次方
占位符%p可以线束地址数据,*可以作为单目操作符使用,可以根据地址找到地址来源的存储区

Day05
1、隐式类型转换过程中一定把占地小的类型转换成占地大的类型
2、如果不同类型数字所占的内存大小一样就把整数类型转换成浮点类型,把有符号类型转换成无符号类型
3、强制类型转换:临时给数字指定一个类型 如:(char)300 此转换方式有可能导致数据内容丢失
4、所有类型转换不会修改现有存储区的内容,计算机都会新分配一个存储区用来存放转换后的数字
5、For循环中把开始数字赋值给循环变量。For(1;2;3){4} 执行顺序为【1,2】 【4,3,2】【4,3,2】···【4,3,2】 1,2,3,可以是用逗号连接的多条语句
6、C99规范里允许在循环的小括号里临时声明循环变量,这种循环变量只能在循环里面使用,循环结束就不能使用了。
1、隐式类型转换过程中一定把占地小的类型转换成占地大的类型
2、如果不同类型数字所占的内存大小一样就把整数类型转换成浮点类型,把有符号类型转换成无符号类型
3、强制类型转换:临时给数字指定一个类型 如:(char)300 此转换方式有可能导致数据内容丢失
4、所有类型转换不会修改现有存储区的内容,计算机都会新分配一个存储区用来存放转换后的数字
5、For循环中把开始数字赋值给循环变量。For(1;2;3){4} 执行顺序为【1,2】 【4,3,2】【4,3,2】···【4,3,2】 1,2,3,可以是用逗号连接的多条语句
6、C99规范里允许在循环的小括号里临时声明循环变量,这种循环变量只能在循环里面使用,循环结束就不能使用了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值