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指令。

  • 相关阅读:
    什么是接口测试?
    接口测试浅谈
    软件测试之数据库面试题
    软件测试的流程是什么?
    多用户博客网站开发实战之创建数据库
    利用python脚本统计和删除redis key
    ULR1 B. 【ULR #1】光伏元件
    法拉第未来任命新CFO!贾跃亭激动发声
    人民需要特斯拉,但条件不允许
    什么叫IOCSABS呢
  • 原文地址:https://www.cnblogs.com/merlinzjl/p/13904812.html
Copyright © 2011-2022 走看看