zoukankan      html  css  js  c++  java
  • CMake 12 函数和宏

    CMake中用以下指令定义函数

    function(<name> [<arg1> …])

      <commands>

    endfunction()

    function指令,指定函数的名称,参数名称

    endfunction指令,用于结束函数的定义,可以传入与function指令中同样的函数名称作为参数,也可以不传。

    这两个指令中间就是函数要执行的命令。

    调用时直接使用函数名即可,不区分大小写

    即如果这样定义函数:

    function(func)

             <command>

    endfunction()

    则可以这样调用 func()  或者 FUNC()

    函数的参数

    1. ARGC:参数的个数
    2. ARGV0、ARGV1、…ARGV#:第#个参数的值
    3. ARGV:所有传入的参数值的列表
    4. ARGN:如果在定义函数时,显式的指定了两个参数,而在调用时,传入了五个参数,则后面的三个参数的值就存在在这个变量里

    注意:set(<variable> <value>... [PARENT_SCOPE]),如果PARENT_SCOPE指定了,那么变量将在当前作用域的父作用域中生效。

    CMake中的宏与函数很相似,但也有区别。

    相同:调用方式相同,同样是不区分名称大小写,参数的引用同样可用,如${ARGC},${ARGN}等。

    区别:CMake的宏跟C语言的宏类似,直接替换,宏的参数相关的引用,并不是真实的变量,而函数中对函数的引用,则是真实的变量,函数有自身的域而宏没有。

    宏定义使用 macro 和 endmacro指令。

  • 相关阅读:
    主键、外键
    框架学习八:Model查询
    框架学习七:自动验证、填充、字段映射
    框架学习六:ORM方式添加数据
    11.0 C++远征:对象指针
    10.0 C++远征:深拷贝与浅拷贝
    9.0 C++远征:对象成员
    8.0 C++远征:对象数组
    7.0 C++远征:封装小结
    2.0 C++远征:类内定义与内联函数
  • 原文地址:https://www.cnblogs.com/merlinzjl/p/13904812.html
Copyright © 2011-2022 走看看