cmake进阶:定义函数的内部变量

一.  简介

前一篇文章学习 cmake中的定义函数基本用法。文章如下:

cmake进阶:定义函数的使用方法-CSDN博客

本文继续学习 cmake中的定义函数,主要学习函数的内部变量。

二.  cmake进阶:定义函数的内部变量

上一篇文章说过,在 cmake 中,调用函数时,实际传入的参数个数不需要等于函数定义的参数个数(甚至函数定义时,参数个数为 0),但是实际传入的参数个数必须大于或等于函数定义的参数个数。

这种设计有什么用途呢?
这种设计可用于实现可变参函数(与 C 语言中的可变 参数函数概念相同)。
但是有个问题,就如上例中所示,用户传入了 3 个参数,但是函数定义时并没有定义这些形参,函数中如何引用到第二个参数 World 以及第三个参数 China 呢?
其实 cmake 早就为大家考虑到 了,并给出了相应的解决方案,就是接下来向大家介绍的内部变量。

1.  函数的内部变量

function() 函数中可以使用内部变量,所谓函数的内部变量,指的就是在函数内部使用的内置变量
这些内部变量如下所示:

我们可以进行测试:

# function 函数测试
# 函数名: xyz
function(xyz arg1 arg2)
 message("ARGC: ${ARGC}")
 message("ARGV: ${ARGV}")
 message("ARGN: ${ARGN}")
 message("ARGV0: ${ARGV0}")
 message("ARGV1: ${ARGV1}")

 # 循环打印出各个参数
 set(i 0)
 foreach(loop ${ARGV})
     message("arg${i}: " ${loop})
     math(EXPR i "${i} + 1")
 endforeach()
endfunction()

# 调用函数
xyz(A B C D E F G)

进入 build目录下,运行 "cmake .." 命令后如下:

这个大家自己去对照一下就知道了。

下一篇文章学习 函数的作用域。

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值