嵌入式day14

Makefile

test:f1.o f2.o main.o
 gcc f1.o f2.o main.o -o test
f1.o:f1.c
 gcc -c -Wall f1.c -o f1.o
f2.o:f2.c
 gcc -c -Wall f2.c -o f2.o
main.o:main.c
 gcc -c -Wall main.c -o main.o
clean:
 rm *.o test

创建和使用变量

创建变量的目的:用来代替一个文本字符串

  1. 系列文件的名字

  2. 传递给编译器的参数

  3. 需要运行的程序

  4. 需要查找源代码的目录

  5. 你需要输出信息的目录

  6. 你想做其他事情

变量定义的两种方式

  • 递归展开方式VAR=var

  • 简单方式VAR: =var

变量使用($(VAR))

用“$ ” 来 表 示 “ ”来表示“

类似于编程语言中的宏

用这种方式定义的变量,会在变量的定义点,按照被引用的变量的当前值进行展开

这种定义变量的方式更适合在大量的编程项目中使用,因为它更像我们一般的编程语言

自动变量

$*不包含扩展名的目标文件名称
$+所有依赖文件,以空格分开,并以出现的先后为序,可能包含重复的依赖文件
$<第一个依赖文件的名称
$?所有时间戳比目标文件晚的依赖文件,以空格分开
$@目标文件的完整名称
$^所有不重复的目标依赖文件,以空格分开
$%如果目标是归档成员,则该变量表示目标的归档成员名称

Make使用

直接运行make

选项含义
-Cdir读入指定目录下的Makefile
-ffile读入当前目录下的file文件作为Makefile
-i忽略所有的命令执行错误
-Idir指定被包含的Makefile所在目录
-n只打印要执行的命令,但不执行这些命令
-p显示make变量数据库和隐含规则
-s在执行命令时不显示命令
-w如果make在执行过程改变目录,打印当前目录名

Makefile的隐含规则

  • 编译C程序的隐含规则

<n>.o”的目标的依赖目标会自动推导为“<n>.c”,并且其生成命令是$(CC) -c $(CPPFLAGS) $(CFLAGS)

  • 链接Object文件的隐含规则

<n>”目标依赖于“<n>.o”,通过运行C的编译器来运行链接程序生成(一般是“ld”),其生成命令是:$(CC) $(LDFLAGS) <n>.o

$(LOADLIBES) $(LDLIBS这个规则对于只有一个源文件的工程有效,同时也对多个Object文件(由不同的源文件生成)的也有效。

Makefile的VPATH

VPATH:(虚路径)在make需要去找寻依赖关系时,在文件前加上路径,把路径告诉make。


数据结构

数据结构概念

数据结构是研究组成数据的数据元素的关系的学科。

数据结构研究的目的

通过研究数据元素的关系,帮助我们在开发软件的时候更好的组建数据模型,让数据在内存中的操作更加的流畅高效。

  • 逻辑关系

  • 存储关系

  • 运算关系

数据

数据即信息的载体,是能够输入到计算机中并且能被计算机识别、存储和处理的符号总称。

数据元素

数据元素是数据的基本单位,又称之为记录(Record)

数据项

数据元素由若干数据项组成,数据项是数据中的最小单位。

数据类型

数据类型是对数据元素取值范围与运算的限定。

数据结构(DS)可用形式化语言描述,即DS是一个二元组:DS = (D, R),其中D为数据元素的集合,R为D上关系的集合。

数据之间的相互关系

  1. 逻辑结构:

表示数据元素之间的抽象关系(如邻接关系、从属关系等)。

有四种基本的逻辑结构:集合结构、线性结构、树形结构、图状结构

  1. 存储结构

    数据的逻辑结构在计算机内的存储形式。

分为顺序存储结构、链接存储结构、索引存储结构、散列存储结构

  1. 数据运算

对数据进行的操作,如插入、删除、查找、排序等。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值