1 .PHONY:clean 声明伪目标
伪目标:没有任何依赖只有执行动作的目标
make+clean 执行伪目标
若想修改或添加依赖 则可以新定义一个变量
例:obj=main.ofuncl.ofuncl2.ofuncl3.o 这里是没间隔的
hello:$(obj)
gcc $(obj) -o hello
makefile中的默认变量:
$^:代表所有的依赖文件
$@:代表所有的目标文件
$<:代表第一个依赖文件
gcc $^ -o $@ 万能语句
@:取消回显的作用
makefile中"#“字符后的内容被作为注释
makefile中多工程文件模板格式套用:
1.cilent(可执行文件)名称可被修改;
2.scripts–>Makefile–>target:终极目标,Modules:源文件目录
3.删除 其他的源文件目录只保留main, 替换里面的main.c 并删掉main.o;
4.include–>myhead.h 里替换成要调用的函数
5.main.c里面 要添加一条路径 #include“…/…/include/myhead.h”;
6.在cilent里面创建所需要的源文件 并在每个源文件目录下粘贴main里的Makefile ,在每个里面还要创建src并放入所需要的.c文件。
shell就是一个命令行解释器,它的作用就是遵循一定的语法将输入的命令加以解释并传给系统。
shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁;
shell提供了你与操作系统之间通讯的方式。
脚本格式:
1 #!/bin/sh (#!必须放在文件的第一行)
2 chmod+x filename (设置执行的权限)
3 ./filename 来执行脚本文件
shell编译中所有变量都由字符串组成并不需要声明
变量=值
去变量值时要在前面加$符号
变量赋值时“=”两边不能有空格。
BASH语句结尾不需要分号
回显echo $a
shell默认变量:
$#:传入脚本的命令行参数个数
$*:所有命令行参数值,在各个参数值之间留有空格
$0:命令本身
$1:第一个命令行参数
$2:第二个命令行参数
main() 括号里可以有形参 ,由系统调用
1.在 ”[ 和 ]“的两边都留有空格 (赋值时不能有空格)
例如 if [ -z $a ] || [ -z $b ]
2.在”=“ 两边也都有空格
-e表示文件已存在
-f表示文件是普通文件
-s文件大小为零
-d文件是一个目录
while和for 是当型循环(条件为真时执行)
until是直到型循环(条件为假时才执行)
算法+数据结构=程序
[ ] 是下标运算符
[ i ] i表示相对于地址所偏移的元素
下表有两个作用:
1.计算出所偏移的元素
2.取出该元素内的值
数组里的元素类型是相同的(同质的)
void *p 无类型指针,在使用前要先转换类型。