东莞勒流网站制作wordpress 美观插件

news/2025/9/29 1:00:04/文章来源:
东莞勒流网站制作,wordpress 美观插件,长沙协会网站设计专业服务,seo排名赚app下载以下内容源于C语言中文网的学习与整理#xff0c;非原创#xff0c;如有侵权请告知删除。 一、Makefile中的函数格式 函数的调用和变量的调用很像。引用变量的格式为$(变量名)#xff0c;而函数调用的格式如下#xff1a; $(function arguments) 或者是…以下内容源于C语言中文网的学习与整理非原创如有侵权请告知删除。 一、Makefile中的函数格式 函数的调用和变量的调用很像。引用变量的格式为$(变量名)而函数调用的格式如下 $(function arguments) 或者是 ${function arguments} function 是函数名arguments 是函数的参数。参数之间要用逗号分隔开。参数和函数名之间使用空格分开。调用函数的时候要使用字符“$”后面可以跟小括号或者大括号。建议用小括号这样就可以记成无论是调用函数还是引用变量Makefile中都是用小括号Shell中都是使用花括号。但Shell中将命令的结果赋给变量时也会使用小括号比如 variable$(command)。而Shell函数见博客Shell函数_天糊土的博客-CSDN博客。 二、常用字符串处理函数 1、模式字符串替换函数patsubst 函数使用格式如下 $(patsubst pattern,replacement,text) 函数说明查找 text 中的单词是否符合模式 pattern如果匹配的话则用 replacement 替换。返回值为替换后的新字符串。 实例 OBJ$(patsubst %.c,%.o,1.c 2.c 3.c) all: echo $(OBJ) 执行 make 命令我们可以得到的值是 1.o 2.o 3.o这些都是替换后的值。 2、字符串替换函数subst 函数使用格式如下 $(subst from,to,text) 函数说明把字符串中的 form 替换成 to返回值为替换后的新字符串。 实例 OBJ$(subst ee,EE,feet on the street) all: echo $(OBJ) 执行 make 命令我们得到的值是“fEEt on the strEEt”。 3、去空格函数strip 函数使用格式如下 $(strip string) 函数说明去掉字符串的开头和结尾的字符串并且将其中的多个连续的空格合并成为一个空格。返回值为去掉空格后的字符串。 实例 OBJ$(strip a b c) all: echo $(OBJ) 执行完 make 之后结果是“a b c”。这个只是除去开头和结尾的空格字符并且将字符串中的空格合并成为一个空格。 4、查找字符串函数findstring 函数使用格式如下 $(findstring find,in) 函数说明查找  in 中的 find 如果查找的目标字符串存在则返回目标字符串否则返回空。 实例 OBJ$(findstring a,a b c) all: echo $(OBJ) 执行 make 命令得到的返回的结果就是 a。 5、过滤函数filter 函数使用格式如下 $(filter pattern,text) 函数说明过滤出 text 中符合模式 pattern 的字符串可以有多个 pattern 。返回值为过滤后的字符串。 实例 OBJ$(filter %.c %.o,1.c 2.o 3.s) all: echo $(OBJ) 执行 make 命令我们得到的值是“1.c 2.o”。 6、反过滤函数filter-out 函数使用格式如下 $(filter-out pattern,text) 函数说明功能和 filter 函数正好相反但是用法相同。去除符合模式  pattern 的字符串保留符合的字符串。返回值是保留的字符串。 实例 OBJ$(filter-out 1.c 2.o ,1.o 2.c 3.s) all echo $(OBJ) 执行 make 命令打印的结果是“3.s”。 7、排序函数sort 函数使用格式如下 $(sort list) 函数说明将 list中的单词排序升序。返回值为排列后的字符串。 实例 OBJ$(sort foo bar foo lost) all: echo $(OBJ) 执行 make 命令我们得到的值是“bar foo lost”。注意sort会去除重复的字符串。 8、取单词函数word 函数使用格式如下 $(word n,text) 函数说明取出函数text中的第n个单词。返回值为我们取出的第 n 个单词。 实例 OBJ$(word 2,1.c 2.c 3.c) all: echo $(OBJ) 执行 make 命令得到的值是“2.c”。 三、常用文件名从操作函数 在编写 Makefile 的时候很多情况下需要对文件名进行操作。例如获取文件的路径去除文件的路径取出文件前缀或后缀等等。当遇到这样的问题的时手动修改是不太可能的因为文件可能会很多而且 Makefile 中操作文件名可能不止一次。所以 Makefile 提供了相应的函数来实现文件名的操作。 注意下面的每个函数的参数字符串都会被当作或是一个系列的文件名来看待。 1、取目录函数dir 函数使用格式如下 $(dir names) 函数说明函数的功能是从文件名序列 names 中取出目录部分如果 names 中没有 / 取出的值为 ./ 。返回值为目录部分指的是最后一个反斜杠之前的部分。如果没有反斜杠将返回“./”。 实例 OBJ$(dir src/foo.c hacks) all: echo $(OBJ) 执行 make 命令得到的值是“src/ ./”。提取文件 foo.c 的路径是 /src 和文件 hacks 的路径 ./。 2、 取文件函数notdir 函数使用格式如下 $(notdir names) 函数说明函数的功能是从文件名序列 names 中取出非目录的部分。非目录的部分是最后一个反斜杠之后的部分。返回值为文件非目录的部分。 实例 OBJ$(notdir src/foo.c hacks) all: echo $(OBJ) 执行 make 命令我们可以得到的值是“foo.c hacks”。 3、取后缀名函数suffix 函数使用格式如下 $(suffix names) 函数说明从文件名序列中 names 中取出各个文件的后缀名。返回值为文件名序列 names 中的后缀序列如果文件没有后缀名则返回空字符串。 实例 OBJ$(suffix src/foo.c hacks) all: echo $(OBJ) 执行 make 命令得到的值是“.c ”。文件 hacks 没有后缀名所以返回的是空值。 4、取前缀函数basename 函数使用格式如下 $(basename names) 函数说明从文件名序列 names 中取出各个文件名的前缀部分。返回值为被取出来的文件的前缀名如果文件没有前缀名则返回空的字符串。 实例 OBJ$(notdir src/foo.c hacks) all: echo $(OBJ) 执行 make 命令得到值是“src/foo hacks”。获取的是文件的前缀名包含文件路径的部分。 5、添加后缀名函数addsuffix 函数使用格式如下 $(addsuffix suffix,names) 函数说明把后缀 suffix 加到 names 中的每个单词后面。返回值为添加上后缀的文件名序列。 实例 OBJ$(addsuffix .c,src/foo.c hacks) all: echo $(OBJ) 执行 make 后得到“sec/foo.c.c hack.c”。如果文件本来就存在后缀名依然会加上后缀。 6、添加前缀名函数addperfix 函数使用格式如下 $(addperfix prefix,names) 函数说明把前缀 prefix 加到 names 中的每个单词的前面。返回值为添加上前缀的文件名序列。 实例 OBJ$(addprefix src/, foo.c hacks) all: echo $(OBJ) 执行 make 命令后得到 src/foo.c src/hacks 。我们可以使用这个函数给文件添加路径。 7、链接函数join 函数使用格式如下 $(join list1,list2) 函数说明把 list2 中的单词对应位置地拼接到 list1 的后面。返回值为拼接好的字符串。 实例 OBJ$(join src car,abc zxc qwe) all: echo $(OBJ) 执行 make 命令后得到“srcabc carzxc qwe”。很显然list1中的文件名比list2的少所以多出来的保持不变。 8、获取匹配模式文件名函数wildcard 函数使用格式如下 $(wildcard PATTERN) 函数说明列出当前目录下所有符合模式的 PATTERN 格式的文件名。返回值为当前目录下的所有符合模式 PATTERN 的文件名它们以空格分隔。 实例 OBJ$(wildcard *.c *.h) all: echo $(OBJ) 执行 make 命令可以得到当前函数下所有的 .c 和  .h  结尾的文件。这个函数通常跟的通配符 * 连用一般使用在依赖规则的描述中。 四、常用的控制函数 Makefile 中提供了两个控制 make 运行方式的函数。当 make 执行过程中检测到某些错误时这些函数可以为用户提供消息并且可以控制 make 执行过程是否继续。 1、error函数 函数使用格式 $(error TEXT...) 函数说明产生致命错误并提示 TEXT... 信息给用户并退出 make 的执行。error函数是在函数展开时函数被调用时才提示信息并结束 make 进程因此如果函数出现在命令中或者一个递归的变量定义时读取 Makefile 时不会出现错误。而只有包含 error 函数引用的命令被执行或者定义中引用此函数的递归变量被展开时才会提示知名信息 TEXT... 同时退出 make。其返回值为空。error函数一般不出现在直接展开式的变量定义中否则在 make 读取 Makefile 时将会提示致命错误。 实例1 ERROR11234 all:ifdef ERROR1$(error error is $(ERROR1))endif make 读取解析 Makefile 时如果ERROR1已经定义make 将会提示致命错误信息 error is 1234 并保存退出。 实例2 ERR$(error found an error!) .PHONY:err err:;$(ERR) 在 make 读取 Makefile 时不会出现致命错误。只有err 作为目标被执行时才会出现。 2、wanning函数 函数格式如下 $(warning TEXT...) 函数说明函数 warning 类似于函数 error 区别在于它不会导致致命错误make不退出而只是提示 TEXT...make 的执行过程继续。返回值为空。用法和 error 类似展开过程相同。 五、其他常用函数 1、foreach函数 函数使用格式如下 $(foreach var,list,text) 函数说明把参数list中的单词逐一取出放到参数var所指定的变量中然后再执行text所包含的表达式。每一次text会返回一个字符串循环过程中text返回的每个字符串会以空格分割最后当整个循环结束的时候text所返回的每个字符串所组成的整个字符串以空格分隔将会是 foreach 函数的返回值。所以var最好是一个变量名list可以是一个表达式而text中一般会只用var这个参数来枚举list中的单词。 实例 name:a b c d files:$(foreach n,$(names),$(n).o) all: echo $(files) 执行 make 命令我们得到的值是“a.o b.o c.o d.o”。 注意foreach 中的 var 参数是一个临时的局部变量foreach 函数执行完后参数var的变量将不再起作用其作用域只在 foreach 函数当中。 2、if函数 函数使用格式如下 $(if condition,then-part)或(ifcondition,then-part,else-part) 函数说明if函数的参数可以是两个也可以是三个。condition参数是 if 表达式如果其返回的是非空的字符串那么这个表达式就相当于返回真于是then-part就会被计算否则else-part会被计算。如果condition为真非空字符串那么then-part会是整个函数的返回值如果condition为假空字符串那么else-part将会是这个函数的返回值此时如果else-part没有被定义则函数返回空字串符。then-part和else-part只会有一个被计算。 实例 OBJ:foo.c OBJ:$(if $(OBJ),$(OBJ),main.c) all: echo $(OBJ) 执行 make 命令得到 foo.c如果变量 OBJ 的值为空执行 make 命令得到 main.c。 3、call 函数 函数使用格式 $(call expression,parm1,parm2,parm3,...) 函数说明当 make 执行这个函数的时候expression参数中的变量$(1)、$(2)、$(3)等会被参数parm1parm2parm3依次取代而expression的返回值就是 call 函数的返回值。我们可以写一个非常复杂的表达式在这个表达式中我们可以定义很多的参数然后使用 call 函数来向这个表达式传递参数。 实例 1 reverse $(1) $(2) foo $(call reverse,a,b) all echo $(foo) 那么foo 的值就是“a b”。当然参数的次序可以是自定义的不一定是顺序的比如 实例 2 reverse $(2) $(1) foo $(call reverse,a,b) all:echo $(foo) 此时的 foo 的值就是“b a”。 4、origin函数 函数使用格式 $(origin variable) 函数说明origin 函数通过返回值告知使用者这个变量是哪里来的。注意variable 是变量的名字不应该是引用所以不要在 variable 中使用“$”字符。 下面是origin函数返回值 “undefined”如果variable从来没有定义过函数将返回这个值。“default”如果variable是一个默认的定义比如说“CC”这个变量。“environment”如果variable是一个环境变量并且当Makefile被执行的时候“-e”参数没有被打开。“file”如果variable这个变量被定义在Makefile中将会返回这个值。“command line”如果variable这个变量是被命令执行的将会返回这个值。“override”如果variable是被override指示符重新定义的。“automatic”如果variable是一个命令运行中的自动化变量。这些信息对于编写 Makefile 是非常有用的。假设有一个 Makefile文件定义了一个变量bletch而环境变量中也有一个环境变量bletch。我们判断这个变量是不是环境变量如果是则将它重定义如果不是则不重新定义。于是我们在 Makefile 中可以这样写 ifdef bletch ifeq $(origin bletch) environment bletch barf,gag,etc endif endif 当然使用override关键字也可以重新定义环境中的变量但是override会把从命令行定义的变量也覆盖了而我们只想重新定义环境传来的而不是重新定义命令行传来的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/921326.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计好的网站推荐网页制作与维护

点击查看专栏目录 文章目录 一、qca-logger插件介绍二、QCA下载三、文件分析四、pro文件五、编译实践5.1 windows下编译5.2 linux下编译5.3 macos下编译一、qca-logger插件介绍 QCA::Logger 是 Qt Cryptographic Architecture (QCA) 库中的一个类,它提供了一个简单而灵活的日志…

相册网站开发昌平网站开发公司

强制类型转换形式:(类型说明符) (表达式)举例说明:1) int a;a (int)1.9;2)char *b;int *p;p (int *) b; //将b的值强制转换为指向整型数据的指针类型,后赋给p注示:类型说明符和表达式都必须加括号,表达式为单个变量可…

建设局工程网站成功的网络营销案例及分析

随着电子商务的繁荣和移动支付技术的发展,网络支付已成为全球消费者日常生活中不可或缺的一部分。然而,这种便捷的支付方式也带来了许多安全风险,这些风险可能威胁到用户的财务安全和个人隐私。本文将深入探讨网络支付面临的主要安全风险&…

res := model.UserConsume{}与res := model.UserConsume{}区别

在Go语言中,res := &model.UserConsume{} 与 res := model.UserConsume{} 的主要区别在于变量的类型和内存分配方式: 类型差异res := &model.UserConsume{}:创建一个 *model.UserConsume类型的变量(指针类…

学校校园网站网站管理员中心

Function.apply(obj,args)方法能接收两个参数,简单说apply方法作用就是给类或方法中的this赋值。所以学会这个方法首先要知道this的作用。(this的用法可以看一下这个链接:http://www.cjavapy.com/article/8/ )obj:这个对象将代替Function类里…

图论010203

图论01&02&03代码问题很多问题都是由母问题衍生出来的,所以核心工具函数甚至不需要怎么变化,只需要在调用函数之前增加判断语句即可,妙哉~ 淹没孤岛的核心是 “先区分非孤岛和孤岛”:边缘相连的是非孤岛,…

搜索引擎网站推广jsp网站开发文献

会一直持续更新。。。 Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时…

西安网站设计开发前端开发培训费用

一、基本概念 与MVC模式不同,MV视图架构中没有包含一个完全分离的组件来处理与用户的交互。 一般地,视图用来将模型中的数据显示给用户,也用来处理用户的输入。为了获得更高的灵活性,交互可以由委托来执行。 这些组件提供了输入…

南通 网站优化济南mip网站建设

EtherCAT主站SOEM -- 37 -- win-soem-win10及win11系统QT-SOEM-1个电机转圈圈-周期同步速度模式(CSV模式) 0 QT-SOEM及STM32F767-SOEM视频欣赏及源代码链接:0.1 Linux--Ubuntu系统之 QT-SOEM博客、视频欣赏及源代码链接0.2 STM32F767-SOEM 博客、视频欣赏及源代码链接0.3 wi…

郑州知名做网站公司网络推广的方法和技巧可以学吗

SWOT分析法:一个综合的方法,可以分析、评估并提出决策建议,需要结合内部因素分析、外部因素分析、综合评价,和辅助决策等一系列方法才能完成鱼骨图分析法:层次分析法的图形展示5M因素分析法:分析法&#xf…

北京微信网站制作费用订阅号可以建设微网站

设想一下,如果待排元素不是一个简单的整数,而是一个庞大的结构体,移动元素的时间不能忽略不计。 元素需要频繁互换,那么移动这些元素的时间将会非常长久,效率很低 typedef very_large_item {int comparable;Tp very_…

河南省建设厅网站师林峰清明节ppt模板免费下载

Ceph支持多种存储访问接口,现有的多种性能测试工具都可用于Ceph的性能测试,如测试块接口性能的fio,iometer等;测试CephFS接口的filebench,fio等;测试对象接口的cosbench等。Ceph有专用的基准测试集CBT,其包…

城市建设网站的项目背景wordpress怎么添加友链

文章目录 0.前言1.参考文档2.基础介绍描述如果满足以下任一条件,应用程序就不会有太大风险:受影响的Spring产品和版本 3.解决方案3.1. 升级版本3.2. 替代方案 0.前言 背景:公司项目扫描到 Spring Cloud Foundry上使用通配符模式匹配进行的安全…

【Nordic随笔】

介绍nRF54系列家族新成员:nRF54LM20Nordic Semiconductor刚刚宣布推出nRF54LM20A,这是下一代nRF54L系列超低功耗无线SoC的最新成员。该设备提供更多内存、多达 66 个 GPIO 和高速 USB 概述 nRF54LM20A 以高存储版本拓…

建设电商网站的个人心得建筑业大数据服务平台

下载地址 导航到 git-lfs.github.com 并单击Download开始下载git-lfs的用法指南 验证安装成功 打开Git Bash验证安装成功,使用命令 git lfs install ,如果出现 >Git LFS initlized,就代表安装成功参考链接 安装 Git Large File Storag…

网站维护的内容有哪些云南企业

在使用 OpenCASCADE 获取 TopoDS_Edge 的起始点和终点时,可能会出现终点与实际不一致的情况。这通常是由于以下原因导致的: 几何曲线的方向问题:在某些情况下,几何曲线的方向可能与拓扑边的方向不一致,导致通过几何曲线…

手机 网站 开发辽宁建设工程信息网审核

以下是2个最近爆火的人工智能工具, DeepSeek:DeepSeek Kimi: Kimi - 会推理解析,能深度思考的AI助手 1、提示词: 你能帮我生成一个知识图谱吗,等一下我会给你一篇文章,帮我从内容中提取关键要素,然后以N…

黄骅网站建设公司semir是什么品牌

文章目录 一、互联网生存指南:通过哪些方法来加强个人信息保护?二、个人信息保护与数字经济发展的关系应该如何平衡?三、互联网公司如何处理数据隐私?四、如何加强个人隐私教育和意识? 一、互联网生存指南:…

bazel架构学习

bazel学习a fast, scalable, multi-language and extensible build systembazel就是一个编译打包工具,类似于make、cmake等 安装#⚠️:Centos7系统安装bazel4 参考:https://docs.bazel.build/versions/5.0.0/instal…