在OSX中,我有以下代码。使用gcc 4.0.1。我是OSX开发的新手,所以不确定在这里还有哪些其他系统信息有用...
static int textstrArgs[] = { 1, 1, 1 };
void func()
{
static int first = 1;
if (first)
{
first = 0;
// stuff
}
/* other stuff */
}
其中func()声明为“ extern”,并从另一个库中调用。
问题是'texstrArgs [2]'和'first'的地址相同。也就是说,在应用程序加载时,会将这两个变量都放在内存中的同一位置。调用func()时,第一个= 0将破坏静态textstrArgs数组中的值。
我可以这样做会导致这种情况发生吗?
感谢您提供任何帮助。
最佳答案
只是预感-尝试更改:
static int textstrArgs[] = { 1, 1, 1 };
至
static int textstrArgs[3] = { 1, 1, 1 };
另一件事-您实际上在任何地方引用textstrArgs吗?如果不是这样,则可能是它已经被优化了。