我想修改传递给函数的变量。这是我写的代码:
FUNCTION(TEST var)
set(${var} "ABC")
message(${var}) # 2) 123
set(${var} "ABC" PARENT_SCOPE)
ENDFUNCTION(TEST)
set(v "123")
message(${v}) # 1) 123
TEST(${v})
message(${v}) # 3) 123
为什么所有三个输出都打印123
。我希望#2
和#3
打印ABC
?
如果我像这样传递变量 - TEST(v)
- 我还有其他输出:#1 - 123
,#2 - v
,#3 - ABC
。为什么是这样?有什么区别?
答案 0 :(得分:1)
您正在将v
的内容传递给TEST()
。所以它应该是:
FUNCTION(TEST var)
set(${var} "ABC")
message(${${var}})
set(${var} "ABC" PARENT_SCOPE)
ENDFUNCTION(TEST)
set(v "123")
message(${v})
TEST(v)
message(${v})
<强>参考强>