C語言塊內定義的變量的生存週期

現在很多編譯器都支持在函數內塊內定義聲明變量,顯然它的作用域只是侷限於塊內,那麼它在內存中是否也是只是在塊內存在實體呢?

爲此我們寫個例子來看一下彙編:

int    main()
{

    for (int i = 0; i < 200; i++)
    {
        if (1)
        {
            int a = 100;
            printf("%d\r\n", a--);
        }
    }
    return 0;
}

可以看到在if塊結束後每次都會將堆棧釋放。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章