一 基于知识
关于'cmake'的函数学习:'类比'其它'语言中的函数'进行分析
① 函数定义
② 函数调用
备注: 函数调用形成'自己的风格',尽量'大写'
③ 变量的作用域
④ 函数的入参
二 实践
① 项目初始化
备注: CMakeLists.txt编写'有误'
② CMakeLIsts.txt定义和调用函数
③ 测试1
④ 测试2
核心: 变量的'作用域'
44行'修改' --> message(STATUS "var2 after call func3: ${var2}")
不使用'PARENT_SCOPE',在'函数内部'set了一个与函数外部变量'同名'的'内部'变量, 该内部变量的'作用域'仅在'函数内部','函数外部'仍然使用的是'外部变量'
关于'PARENT_SCOPE'解读
⑤ 测试3
核心: 函数的'参数'
⑥ 小结
1)函数'内部'可以引用'函数外部'的变量
条件: 变量要在'函数外'定义,并且先于'函数调用前'执行
备注: 不指定'PARENT_SCOPE',函数内如果'没有定义同名'变量,则读取'函数外'的变量
补充: 函数内如果'定义同名'变量,则'读取'的是函数内的变量
特点: 可以读取变量、但是'不能修改'
2)函数内部'定义的变量(var1)'可以在'函数外部'被引用 -->'PARENT_SCOPE'声明作用域
3)关于'函数嵌套',参考下面的参考博客
三 参考博客