在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吗?如果不是这样,则可能是它已经被优化了。

07-24 14:13