11月11日linux学习笔记和c语言数据类型Basic

linux Makefile伪命令和模板套用。

伪命令.

.PHONY:xxxx 声明伪目标
伪目标:没有任何依赖只有执行动作的目标
make xxxx 执行伪目标命令(Makefile里伪命令的书写格式与普通文件命令一致)
使用变量:
obj:main.ofunc1.ofunc2.o(不留空格)
例:
hello:$(xxx)
(tab) gcc $(xxx)-o hello
makefile下系统默认的自动化变量:
$^:代表所有依赖文件
$@:代表目标
$<:代表第一个依赖文件
hello;hello.c
(tab)@gcc hello.c -o hello(加@则取消在终端上显示此命令)
你可以这样使用这些命令:
hello: main.o func1.o func2.o
( tab )gcc main.o func1.o func2.o (-o hello) {这是例子源程序}
hello: main.o func1.o func2.o
( tab )gcc $^ (-o @) {这是目标源程序}

套用模板(不废话,上图)

1.在这里插入图片描述(文件准备)
2.(创建对应文件夹)(创建对应文件夹)
3.在这里插入图片描述(举例,在add文件夹底下,我们需要这些东西,makefile文件从原来的main文件夹里拷贝。add.c文件从准备的文件里拷贝过来,同样的操作要对其他四份包括main里面的)
4.在这里插入图片描述(这里我们重写include下的myhead文件,之后我们在主源文件的之前加入include头文件即可)
关于模板的我就讲到这么多。

shell脚本

格式要求:

1 #!/bin/sh (要放在文件的首行)
2 chmod+x filename (设置执行的权限)
3 ./filename 来执行脚本文件

shell编译中所有变量都由字符串组成并不需要声明
去变量值时要在前面加$符号
变量赋值时“=”两边不能有空格。
BASH语句结尾不需要分号
回显echo $a

shell默认变量:

$#:传入脚本的命令行参数个数
$*:所有命令行参数值,在各个参数值之间留有空格
$0:命令本身
$1:第一个命令行参数
$2:第二个命令行参数
1.在 ”[ 和 ]“的两边都留有空格 (赋值时不能有空格)
例如 if [ -z $a ] || [ -z $b ]
2.在”=“ 两边也都有空格
-e表示文件已存在
-f表示文件是普通文件
-s文件大小为零
-d文件是一个目录
expr xxxxx表达式 求xxxx表达式值

while until case 格式

whlie格式

while [condition]
do
[ tab ]#codes
done

until格式

until [condition]
do
[ tab ]#codes
done

case格式

csae “var” in
[ tab ]#codes contidions1)
[ tab ];;
[ tab ]#codes contidions1)
[ tab ];;
[ tab ]*)
esac

c数据类型

int型变量的字长取决于当前CPU或者目标CPU字长,比如你的cpu是16位的那么:你所的整型量:int 是16位,两个字节,如果是32位的CPU 那么此int型量位32位,4 个字节。以32位的字长为例,short型为16位,long型为32位,long long型为64位。
其变量范围以unsigned int型为例,32位下范围为0 ~ 2^ 32-1,int 型为-(2^ 16-1)~ 2^16
实型:float(%f)
double(%lf)
fabs()<1e-6 一般用取绝对值比精度
a[](a数组名[常数],[]下标符:1。计算地址偏移元素量2。取出内容)
预先不知道某一指针的类型时先用void等知道后再强制转换
程序=算法+数据结构
[ ] 是下标运算符
[ i ] i表示相对于地址所偏移的元素
下表有两个作用:
1.计算出所偏移的元素
2.取出该元素内的值
数组里的元素类型是相同的(同质的)
void *p 无类型指针,在使用前要先转换类型。

直接贴一些图片吧(字丑,勿喷)

在这里插入图片描述在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/xyc895/article/details/83964266