这周学习学习函数的知识。(后天就放假了,很期待!)
1.函数的语法:
$(<function> <arguments>)
或者
${<function> <arguments>}
其中:
- <function>是函数名
- <arguments>是函数的参数,参数间以逗号“,”分隔
- 函数名和参数之间以“空格”分隔
- 函数调用以“$”开头,以圆括号或者花括号把函数名和参数括起
2.示例:
comma:=,
empty:=
space:=$(empty) $(empty)
foo:=a b c
bar:=$(subst $(space),$(comma),$(foo))
其中:
- $(comma)的值是一个逗号
- $(space)使用了$(empty)定义了一个空格
- $(foo)的值是“a b c”
- 函数“subst”是一个替换函数,这个函数有三个参数,第一个参数是被替换的字串,第二个参数是替换字串,第三个参数是替换操作作用的字串,这个函数也就是把$(foo)中的空格提啊换成“,”。
- $(bar)调用了函数“subst”,所以$(bar)的值是“a,b,c”
3.字符串处理函数
3.1字符串替换函数
- 函数名:subst
- 语法:$(subst <from>,<to>,<text>)
- 功能:把字串<text>中的<from>字符串替换成<to>
- 返回:返回被替换过后的字符串
- 示例:
$(subst ee,EE, feet on the street)
- 说明:把“feet on the street”中的“ee”替换成“EE”,返回结果是“fEEt on the strEEt”
3.2模式字符串替换函数
- 函数名:patsubst
- 语法:$(patsubst <pattern>,<replacement>,<text>)
- 功能:查找<text>中的单词(单词以“空格”、“Tab”或着“回车”、“换行”分隔)是否符合模式<pattern>,如果匹配,则以<replacement>替换。这里<pattern>可以包括通配符"%",表示任意长度的字串。如果<replacement>中包含"%",那么<replacement>中的这个“%”将是<pattern>中的那个“%”所代表的字串。(可以用“\%”表示真实含义的“%”)
- 返回:返回被替换过后的字符串
- 示例:
$(patsubst %.c,%.o,x.c.c bar.c
- 说明:把“x.c.c bar.c”符合模式[%.c]的单词换成[%.o],返回结果是“x.c.o bar.o”
3.1.3去掉空格函数
- 函数名:strip
- 语法:$(strip<string>)
- 功能:去掉<string>字串中开头和结尾的空格,类似与trim()
- 返回:返回被去掉空格的字符串值
- 示例:
$(strip a b c )
- 说明:把“a b c ”字串中开头和结尾的空格去掉,返回结果是“a b c”
3.1.4查找字符串函数
- 函数名:findstring
- 语法:$(findstring <find>,<in>)
- 功能:在字串<in>中查找<find>字串
- 返回:如果找到,则返回<find>,否则返回空字符串
- 示例:
$(findstring a,a b c)
$(findstring a,b,c)
- 说明:第一个函数返回“a”,第二个函数返回“ ”字符串(空字符串)
3.1.5过滤函数
- 函数名:filter
- 语法:$(filter <pattern...>,<text>)
- 功能:以<pattern>模式过滤<text>字符串中的单词,保留符合模式<pattern>的单词。可以有多个模式
- 返回:返回符合模式<pattern>的字串
- 示例:
sources:=foo.c bar.c baz.s ugh.h
foo:$(sources)
cc $(filter %.c %.s,$(sources)) -o foo
- 说明:$(filter %.c %.s,$(sources))返回值是“foo.c bar.c baz.s”
3.1.6反过滤函数
- 函数名:filter-out
- 语法:$(filter-out <pattern...>,<text>)
- 功能:以<pattern>模式过滤<text>字符串中的单词,去除符合模式<pattern>的单词。可以有多个模式
- 返回:返回不符合模式<pattern>的字串
- 示例:
objects=main1.o foo.o main2.o bar.o
mains=main1.o main2.o
$(filter-out $(mians),$(objects))
- 说明:$(filter-out $(mains),$(objecrs))返回值是“foo.o bar.o”
3.1.7排序函数
- 函数名:sort
- 语法:$(sort<list>)
- 功能:给字符串<list>中的单词排序(升序)
- 返回:返回排序后的字串
- 示例:
$(sort foo bar lose)
-
返回值是“bar foo lose”
- sort函数会去掉<list>中相同的单词
3.1.8取单词函数
- 函数名:word
- 语法:$(word <n>,<text>)
- 功能:取字符串<text>中第<n>个单词(从1开始)
- 返回:返回字符串<text>中第<n>个单词。如果<n>比<text>中的单词数要大,则返回空字符串
- 示例:
$(word 2,foo bar lose)
3.1.9取单词串函数
- 函数名:wordlist
- 语法:$(wordlist <s>,<e>,<text>)
- 功能:从字符串<text>中取从<s>开始到<e>个单词串。<s><e>是一个数字
- 返回:返回字符串<text>中从<s>开始到<e>个单词串。如果<s>比<text>中的单词数要大,则返回空字符串;如果<e>大于单词数,则从<s>开始,到结束
- 示例:
$(wordlist 2,3,foo bar lose)
3.1.10单词个数统计函数
- 函数名:words
- 语法:$(words<text>)
- 功能:统计<text>中字符串中单词个数
- 返回:返回字符串<text>中单词数
- 示例:
$(words foo bar lose)
3.1.11首单词函数
- 函数名:firstword
- 语法:$(firstword <text>)
- 功能:从字符串<text>中取第一个单词
- 返回:返回字符串<text>中第一个单词
- 示例:
$(firstword foo bar lose)
分享到:
相关推荐
makefile学习手册集合包括《跟我一起写makefile》《gnumakefile》
Makefile学习参考资料.zip
不错的makefile学习资料,数据makefile的进阶篇
纤细介绍如何编写makefile的文档,如何组织Makefile文件
Makefile学习笔记.docx
Makefile学习资料.rarMakefile学习资料.rarMakefile学习资料.rarMakefile学习资料.rarMakefile学习资料.rarMakefile学习资料.rarMakefile学习资料.rarMakefile学习资料.rarMakefile学习资料.rarMakefile学习资料....
makefile学习电子书,包含: gnu make GNU make中文手册 跟我一起写Makefile
很不错的makefile学习资料 很不错的makefile学习资料 很不错的makefile学习资料 很不错的makefile学习资料 很不错的makefile学习资料
一本 Makefile 开发手册,系统学习Makefile,pdf格式,由浅入深,通俗易懂。
总结文档: 目录 1功能 2 Make 和Makefile的关系 3 makefile 规则 4 Make 命令行参数 5 如何使用 6关于Toscan中makefile文件的使用和说明 7 疑问
Makefile学习教程: 跟我一起写 Makefile 0 Makefile概述 0.1 关于程序的编译和链接 1 Makefile 介绍 1.1 Makefile的规则 1.2 一个示例 1.3 make是如何工作的 1.4 makefile中使用变量 1.5 让make自动推导 ...
什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但...
这是我自己学习Makefile的心得,包括在单目录下如何编写,在多目录下如何编译各自的源文件,在多目录下编译成静态库和动态库文件,以及链接库文件生成目标程序的Makefile,其中还有一些心得,希望能对刚刚学习...
关于make makefile 的学习资料. 介绍了make makefile 的语法等。
make中文手册等 小测试: # Readme: # use: make config # use: make dir # use: make # use: make clean # use: make rebuild # use: make cleanall # use: make test # use: make
Makefile学习教程.txt Makefile学习教程.txt Makefile学习教程.txt
Makefile学习.pdf
makefile编写,学习linux c编程的必备,makefile编写,学习linux c编程的必备
本篇文章详细阐述了unix环境下的make的使用,默认的编译器是UNIX下的GCC和CC。
makefile编写规则,快速学习了解makefile入门。