您好!
我看到函数中声明的静态常量变量存在一种奇怪的行为。
uint32_t function1 (void){ 静态常量 uint16_t var1 = 14000; 静态常量 uint16_t var2 = 2000; 静态常量 uint16_t var3 = 1750; /*一些计算*/ 返回计算值;
}
如果我在调试模式(无优化)下单步执行这些函数、并在这些变量上添加观察表达式、我会得到:
VAR1:找不到标识符:VAR1
VAR2:240
Var3:16383
如果我从声明中删除"静态"、那么我会得到正确的值:
VAR1:14000
VAR2:2000
Var3:1750
我认为它可能只是调试器、但如果我添加或删除"static"属性、计算值实际上会发生变化。
此编译器是特定的吗? 我正在使用 TI v18.1.0.LTS、但我也尝试过 v18.12.2.LTS、两者的行为相同。
编辑:我还尝试过19.6.0.STS
谢谢、
Fred