字串處理函式
1、subst
$(subst ee,ee,feet on the street),
把「feet on the street」中的「ee」替換成「ee」,返回結果是「feet on the street」。
2、patsubst
$(patsubst %.c,%.o,x.c.c bar.c)
把字串「x.c.c bar.c」符合模式[%.c]的單詞替換成[%.o],返回結果是「x.c.o bar.o」
3、strip
$(strip a b c )
把字串「 a b c 」去到開頭和結尾的空格,結果是「a b c」。
4、findstring
$(findstring a,a b c)
在a b c中找a
$(findstring a,b c)
第乙個函式返回「a」字串,第二個返回「」字串(空字串)
5、filter
sources := foo.c bar.c baz.s ugh.h
foo: $(sources)
cc $(filter %.c %.s,$(sources)) -o foo
找以 .c ,.s結尾的檔案
$(filter %.c %.s,$(sources))返回的值是「foo.c bar.c baz.s」。
提取字串
file := adb efg hij
$(filter db, $file) 返回adb
6、filter-out
objects=main1.o foo.o main2.o bar.o
mains=main1.o main2.o
$(filter-out $(mains),$(objects)) 返回值是「foo.o bar.o」。
7、sort
$(sort foo bar lose)返回「bar foo lose」 。
8、word
$(word 2, foo bar baz)返回值是「bar」。
9、wordlist
$(wordlist 2, 3, foo bar baz)返回值是「bar baz」。
10、words
$(words, foo bar baz)返回值是「3」。
11、firstword
$(firstword foo bar)返回值是「foo」。
檔名操作函式
1、dir
$(dir src/foo.c hacks)返回值是「src/ ./」。
2、notdir
$(notdir src/foo.c hacks)返回值是「foo.c hacks」。
3、suffix
$(suffix src/foo.c src-1.0/bar.c hacks)返回值是「.c .c」。
4、basename
$(basename src/foo.c src-1.0/bar.c hacks)返回值是「src/foo src-1.0/b
ar hacks」。
5、addsuffix
$(addsuffix .c,foo bar)返回值是「foo.c bar.c」。
6、addprefix
$(addprefix src/,foo bar)返回值是「src/foo src/bar」。
7、join
$(join aaa bbb , 111 222 333)返回值是「aaa bbb 111 222 333」。
其他函式
1、foreach 函式
迴圈函式
names := a b c d
files := $(foreach n,$(names),$(n).o)
上面的例子中,$(name)中的單詞會被挨個取出,並存到變數「n」中,「$(n).o」每次根據「$(n)」計算出乙個值,這些值以空格分隔,最後作為foreach函式的返回,所以,$(files)的值是「a.o b.o c.o d.o」。
2、if 函式
3、call函式
call函式是唯一乙個可以用來建立新的引數化的函式。你可以寫乙個非常複雜的表示式,這個表示式中,你可以定義許多引數,然後你可以用call函式來向這個表示式傳遞引數。
例如:reverse = $(1) $(2)
foo = $(call reverse,a,b)
那麼,foo的值就是「a b」。當然,引數的次序是可以自定義的,不一定是順序的,如:
reverse = $(2) $(1)
foo = $(call reverse,a,b)
此時的foo的值就是「b a」。
4、origin函式
origin函式不像其它的函式,他並不操作變數的值,他只是告訴你你的這個變數是**來的
$(origin )
下面,是origin函式的返回值:
「undefined」
如果從來沒有定義過,origin函式返回這個值「undefined」。
「default」
如果是乙個預設的定義,比如「cc」這個變數,如果是乙個環境變數,並且當makefile被執行時,「-e」引數沒有被開啟。
「file」
如果這個變數被定義在makefile中。
「command line」
如果這個變數是被命令列定義的。
「override」
如果是被override指示符重新定義的。
「automatic」
5、shell函式
如果是乙個命令執行中的自動化變數。
contents := $(shell cat foo)
files := $(shell echo *.c)
控制make的函式
1、error
示例一:
ifdef error_001
$(error error is $(error_001))
endif
示例二:
err = $(error found an error!)
.phony: err
err: ; $(err)
示例一會在變數error_001定義了後執行時產生error呼叫,而示例二則在目錄err被執行時才發生error呼叫。
2、warning
這個函式很像error函式,只是它並不會讓make退出,只是輸出一段警告資訊,而make繼續執行。
MySQL函式列表
mysql中,提供了豐富的函式,簡化了使用者對資料的操作 包括數學函式 字串函式 日期和時間函式 條件判斷函式 加密函式等 abs x 返回x的絕對值 sqrt x 返回x的非負2次方根 mod x,y 返回x被y除后的餘數 ceiling x 返回不小於x的最小整數 floor x 返回不大於x的...
C cmath函式列表
using abs 絕對值 using acos 反余弦 using acosf 反余弦 using acosl 反余弦 using asin 反正弦 using asinf 反正弦 using asinl 反正弦 using atan 反正切 using atan2 y x的反正切 using a...
GoC函式列表
p.fd length 筆前進length步 p.bk length 筆後退length步 p.rt angle 筆右轉angle度 p.lt angle 筆左轉angle度 p.c color 設定筆的顏色,有三種引數形式,第一種是乙個引數,可為0 15 0黑 1紅 2深藍 3綠 4青藍 5黃 6...