我正在研究一些 C 输出问题,发现以下代码:
在这段代码中,可以看到,在 main 内部,声明了一个具有相同名称的静态变量。为此,我在 Stack-Overflow 上搜索并发现
为这个问题给出的答案提出了不同的方法,即。
- 静态变量的名称通常包含在调试符号表中。
- 一些嵌入式的(编译器)只需在每个重复名称的末尾添加一个数字
- 他们很可能在桌子上被破坏了。
我想知道静态变量是如何在 C 中实际实现的,因为所有答案都暗示了一些不同的东西?
另外为了检查这是否只是一次机会,我还运行了代码:
但错误:
prog.c:5:21: error: called object ‘GetSize’ is not a function or function pointer
int myvar=GetSize(GetSize);
^
prog.c:4:11: note: declared here
static GetSize;
^
表示编译器发现了一个冲突的声明/重新声明了 Getsize。