IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 函数定义及调用 -> 正文阅读

[系统运维]函数定义及调用

makefile 中支持函数的概念

make 解释器提供了一系列的函数供 makefile 调用

在 makefile 中支持自定义函数实现,并调用执行

通过 define 关键字实现自定义函数

自定义函数的语法

深入理解自定义函数

自定义函数是一个多行变量,无法直接调用

自定义函数是一种过程调用,没有任何的返回值

自定义函数用于定义命令集合,并应用于规则中

自定义函数

makefile

.PHONY : test

define func1
	@echo "my name is $(0)"
endef

define func2
	@echo "my name is $(0)"
	@echo "parameter1 is $(1)"
	@echo "parameter2 is $(2)"
endef

var1 := $(call func1)
var2 := $(func1)

test:
	$(call func1)
	$(func1)
	@echo "$(var1)"
	@echo "$(var2)"
	$(call func2,hello,world)

执行结果如下所示:

call 是 make 提供的一个预定义的函数,用于执行一个变量所对应的命令,并且可以传递参数,$(0) 为这个变量的名称;直接去执行一个变量所对应的命令,其参数为空。

make 解释器中的预定义函数

make 的函数提供了处理文件名,变量和命令的函数

可以在需要的地方调用函数来处理指定的参数

函数在调用的地方被替换为处理结果

预定义函数的调用

问题?

为什么自定义函数和预定义函数的调用形式完全不同?

本质剖析

makefile 中不支持真正意义上的自定义函数

自定义函数的本质是多行变量

预定义的 call 函数在调用时将参数传递给多行变量

自定义函数是 call 函数的实参,并在 call 中被执行

函数剖析

makefile

.PHONY : test

define func1
	@echo "my name is $0"
endef

var1 := $(call func1)
var2 := $(abspath ./)
var3 := $(abspath test.cpp)

test:
	@echo "var1 => $(call var1)" 
	@echo "var2 => $(var2)"
	@echo "var3 => $(var3)"

程序执行结果如下所示:

$(call var1) 去执行了 var1 变量所对应的命令。?

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-02-01 20:59:17  更:2022-02-01 21:00:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 7:39:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码