gpt4 book ai didi

c++ - 如何在 for 循环中获得事件变量的数量?

转载 作者:IT老高 更新时间:2023-10-28 23:21:52 26 4
gpt4 key购买 nike

考虑以下代码:

int main() {
int a = 0;
int b = 1;

for (int i = 0; i < 3; i++) {
a = 2;
int c = 1;
int d = 3;
d = a + c;
}

a = b+2;
}

在上面的代码中,三个变量的生命周期包含在循环体中(icd)。我希望能够使用 LLVM 计算其生命周期存在于任何给定循环主体中的变量(即对于这个循环,我的代码应该返回 3)。

我找到了 Live Variables Analysis ,但我无法使用它来查找我上面描述的内容。

最佳答案

也许这应该只是一个注释,但我无法表达内联代码:

只有两个变量在循环体内有持续时间。 i 在循环开始之前声明,并持续到循环体的最后一次执行之后。换句话说,c 和 d 被构造/破坏了 3 次;在第三次被破坏后,则 i 是。

因此,您编写的 for 循环相当于:

{
int i = 0;
while (i < 3)
{
a = 2;
int c = 1;
int d = 3;
d = a + c;

}
i++;
}

额外的大括号集合调用 block 作用域; i 超出范围并在 for 循环体之外被销毁,但在任何后续代码之前。

关于c++ - 如何在 for 循环中获得事件变量的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48019154/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com