gpt4 book ai didi

c - 为什么这是一个非法的常量表达式?

转载 作者:行者123 更新时间:2023-12-03 19:42:20 24 4
gpt4 key购买 nike

我试图保留一个变量,以便在调试优化代码时可以看到它的值。
为什么以下是非法的常量表达式?

   void foo(uint_32 x)
{
static uint_32 y = x;
...
}

最佳答案

"Why is the following an illegal constant expression?"



因为 static变量必须用编译时已知的值初始化,而 x仅在运行时确定。

注意这里使用 static用于在对 foo() 的不同调用之间保持变量及其存储值活着(存在于内存中)- 意味着在一次执行函数后对象不会被销毁/释放,就像存储类的函数局部变量 auto 一样。马蒂奇。

创建和初始化 static 没有意义每个函数调用 new 处的变量。

关于c - 为什么这是一个非法的常量表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61800232/

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