【发布时间】:2013-11-16 06:30:02
【问题描述】:
(更改原始问题的变量名称以适合实际代码)
我是 C 新手,我正在实现一个队列。
错误在于 static int head=0 变量。每次调用 dequeue() 时它都会增加 1。当队列出队并调用函数 get_person() 时,似乎会发生错误。然后,头部变量似乎得到了一个很高的随机数,例如 23423449。我不知道这是从哪里来的。但是,如果我去掉“static”关键字,所以变量被声明为int head=0,它工作正常。怎么会?
【问题讨论】:
-
请贴出代码。
-
你的变量应该在 .C 文件中,而不是在头文件中(你应该把它的定义标记为“extern”)。
-
变量不在头文件中,在c文件中。而且它只在那个文件中使用。
-
通过在标头中设置变量静态,您将为包含标头的每个文件提供其自己的变量个人版本。在一个文件中设置变量不会影响任何其他文件中的版本
-
xcode 会撒谎吗?尝试将值打印出来