c++作业

Shell中的函数(先调用后使用的原则)(没有申明)

(Function) 函数名(有没有参数根据调用格式)(不能写任何内容)

{

函数体

Return 返回值

}

函数名   ----》调用没有参数的函数

函数名 实参1 实参2 实参3 ------- 空格作为分割

函数参数的获取

通过位置变量的方式获取

${n}

只能从$1开始获取    $0永远为脚本名

使用位置变量 ,在寒素内部使用位置变量,只能获取函数的外部参数

在脚本使用位置变量。只能获取脚本的外部参数

只要在实现函数时写了return 函数就有返回值函数

$?接收上一条指令的返回值

Shell中只能返回0-255 超过255会取余

修饰变量的关键字

Readonly :只读不能修改

Local:定义局部变量,只能在函数内使用(shell中所有的变量默认都是全局)

分文件编译

将主函数 功能函数的定义 功能的申明博爱阔头文件分成三个文件

主函数 main.c

功能函数 fun.c

函数申明和头文件 fun.h

需要联合编译 主函数和函数定义需要联合编译 gcc main fun 默认生成a.out

.h文件不能写到gcc 后面

Makefile

是一个工程管理文件,可以完成程序的自动化编译

需要make工具 对makefile文件进行处理

Make是gnu的产品 gpl(开放源)

Sudo apt-get install make

为什么学makefile

当分布编译时,如果一个c文件发生修改 则所有的c文件都需要重新编译再生成可执行的文件

使用makefile后 可以只对修改的文件重新编译,简化编译的过程

Makefile的书写

类似于shell脚本

Makefile由规则 变量函数组成

  1. 规则
  2. 目标:依赖
  3. <tab建>指令

Make工具

Make工具是用来读取makefile文件的

直接在终端输入make makefile

Make 有两个默认的读入文件 makefile makefile 如果两个文件同时存在 make 会读入小的makefile 可以使用make -f makefile 指定读入 makefile

Gcc分布编译

预处理 编译汇编 链接

Gcc -E xxx.c -o xxx.i

删除注释 替换宏定义 展开头文件 不检查语法错误

gcc -S xxx.i -o xxx.s

检查语法错误 生成汇编文件

Gcc -c xxx.s -o xxx.o

生成二进制文件

Gcc xxx.o -o a.out  链接到程序需要的库,生成可执行文件

Makefile 把文件的编译过程分为两部

生成二进制文件 -c .o文件

链接库生成可执行文件

将编译过程分为两部

第一步 生成.o后缀的二进制文件

第二步 链接库,生成可执行的文件

节约编译时间

保证每个.c文件都有一个已经完成大部分编译过程.o文件生成

Makefile 中的规则

规则的构成:

目标:依赖

《tab》 语句    -------- 一定是tab

每一条规则都必须有一个目标

一个目标可以有多个依赖

一个目标也可以没有依赖 只执行语句

Makefile中的变量

+= 追加赋值 加空格把其他变量的值加在后面

= 递归赋值 取最后一次赋值的结果

?= 条件赋值 如果变量前面没有赋值过就赋值   赋值过就不赋值

:=立即赋值

第二版makefile

EXE=fun

OBJs+=main.o

OBJs+=fun.o

CC=gcc

CFLAGs=-c

#!/bin/bash
function fun()
{
 id -u
 id -g
}
fun
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值