我在 func.c....中定义了一个函数 此函数定义了一个'static unsigned int'。 我这样做是希望当我跳回 main (位于 main.c 中)时、我可以访问该变量、并且它将在下次调用函数时保留它的最后一个值。
1. 我是否正确使用了静态变量、我对变量的期望是否正确?
2. 当我在 main 的 LPM3中停止调试器时....调试器显示变量"identifier not found"的值..... 我应该不能在 main 中看到这个吗?
谢谢
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我在 func.c....中定义了一个函数 此函数定义了一个'static unsigned int'。 我这样做是希望当我跳回 main (位于 main.c 中)时、我可以访问该变量、并且它将在下次调用函数时保留它的最后一个值。
1. 我是否正确使用了静态变量、我对变量的期望是否正确?
2. 当我在 main 的 LPM3中停止调试器时....调试器显示变量"identifier not found"的值..... 我应该不能在 main 中看到这个吗?
谢谢
静态可能意味着几个因素、具体取决于其使用位置。
将其用于函数定义之外的全局可见内容、并且仅在该特定文件中的该点之后可见。 它对 gdb 也是不可见的。 至少按名称。 您可以使用 extern 在不分配空间的情况下告诉编译器变量是什么。 您可以在声明它的文件之外的文件中使用它。 它无法覆盖静态、因为目标文件没有全局可见符号。
在函数中使用静态变量、您不会更改变量范围、而只是更改其寿命。 函数中的静态变量在函数调用之间保持不变。
[引用 user="Steve Wenner">此函数定义了一个'static unsigned int'。 我最近尚未测试过它、但过去可以在 CCS 调试器中添加限定表达式以显示具有文件或函数作用域的静态变量-请参阅 https://e2e.ti.com/support/tools/ccs/f/81/p/634560/2350010#2350010