call函数的用法?
4个回答
展开全部
用于监视uf函数是否正常调用了,如果未正常调用,显示错误信息。详细说明见《ug应用开发教程与实例精解》p80
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
VB
中调用函数前用Call,其实现在不用也可以。
这里的Call不是函数,而是调用的意思
中调用函数前用Call,其实现在不用也可以。
这里的Call不是函数,而是调用的意思
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
call函数
call函数是惟一的能创建新的带有参数的函数的函数.如果用一个复杂的表达式作为一个变量的值,那么可以通过call函数使用不同的参数调用它.
函数call的语法为:
$(call variable,param,param,...)
即当make扩展该函数时,它将每一个参数"param"赋值给临时变量$(1) $(2)等;变量$(0)的值是变量"variable".对于参数"param"的数量没有最大数目的限制,也没有最小数目的限制.但如果call函数没有任何参数,那么使用它的意义就不大.变量"variable"在这些临时变量的上下文中被扩展为一个make变量.这样,在变量"variable"中,对变量"$(1)"的引用决定了调用函数call时对第一个参数"param"的使用.
注意,变量"variable"仅是一个变量的名称,不是对该变量的引用.所以,不能用"$"和圆括号的格式书写该变量.但是,如果在使用非常量名称的文件名时,可以在文件名中使用它的变量引用.
如果变量名是内建函数名,则该内建函数将被调用.call函数在给临时变量赋值以前首先要扩展参数,这就是说,变量"variable"对内建函数的调用将采用特殊的规则进行扩展,所以其扩展结果可能和预期的结果不同.如:
reverse=$(2) $(1)
foo=$(call reverse,a,b)
这是一个将参数的顺序翻转的例子.boo的值是"b a".
再如:
pathsearch=$(firstword $(wildcard $(addsufix/$(1),$(subst:, ,$(PATH) ) ) ) )
LS := $(call pathsearch,ls)
这是一个可以在变量PATH包含的所有目录中搜寻满足第一个指定类型的程序.变量LS的值是"/bin/ls",或其他的类拟的值.
函数call中可以使用嵌套.每一次递归调用都可以为它自己的局部变量"$(1)"等赋值,从而代替上一层函数call赋的值.如:
map = $(foreach a,$(2),$(call $(1),$(a)))
这是一个实现了映像函数功能的例子.现在,可以通过对仅有一个参数的函数,如函数origin的映像(map),一步得到多个值:
o = $(call map,origin,o map MAKE)
这时,变量o包含诸如"file file default"这样的值.
注意,在函数call的参数中使用空格一定要十分小心.因为在其他函数中,第二个或接下来的参数中的空格是不删除的.所以,在使用call函数时,去掉参数中任何多余的空格才是最安全的方法.
call函数是惟一的能创建新的带有参数的函数的函数.如果用一个复杂的表达式作为一个变量的值,那么可以通过call函数使用不同的参数调用它.
函数call的语法为:
$(call variable,param,param,...)
即当make扩展该函数时,它将每一个参数"param"赋值给临时变量$(1) $(2)等;变量$(0)的值是变量"variable".对于参数"param"的数量没有最大数目的限制,也没有最小数目的限制.但如果call函数没有任何参数,那么使用它的意义就不大.变量"variable"在这些临时变量的上下文中被扩展为一个make变量.这样,在变量"variable"中,对变量"$(1)"的引用决定了调用函数call时对第一个参数"param"的使用.
注意,变量"variable"仅是一个变量的名称,不是对该变量的引用.所以,不能用"$"和圆括号的格式书写该变量.但是,如果在使用非常量名称的文件名时,可以在文件名中使用它的变量引用.
如果变量名是内建函数名,则该内建函数将被调用.call函数在给临时变量赋值以前首先要扩展参数,这就是说,变量"variable"对内建函数的调用将采用特殊的规则进行扩展,所以其扩展结果可能和预期的结果不同.如:
reverse=$(2) $(1)
foo=$(call reverse,a,b)
这是一个将参数的顺序翻转的例子.boo的值是"b a".
再如:
pathsearch=$(firstword $(wildcard $(addsufix/$(1),$(subst:, ,$(PATH) ) ) ) )
LS := $(call pathsearch,ls)
这是一个可以在变量PATH包含的所有目录中搜寻满足第一个指定类型的程序.变量LS的值是"/bin/ls",或其他的类拟的值.
函数call中可以使用嵌套.每一次递归调用都可以为它自己的局部变量"$(1)"等赋值,从而代替上一层函数call赋的值.如:
map = $(foreach a,$(2),$(call $(1),$(a)))
这是一个实现了映像函数功能的例子.现在,可以通过对仅有一个参数的函数,如函数origin的映像(map),一步得到多个值:
o = $(call map,origin,o map MAKE)
这时,变量o包含诸如"file file default"这样的值.
注意,在函数call的参数中使用空格一定要十分小心.因为在其他函数中,第二个或接下来的参数中的空格是不删除的.所以,在使用call函数时,去掉参数中任何多余的空格才是最安全的方法.
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询