搜尋

首頁  >  問答  >  主體

为什么这段代码在C和C++下编译结果不一样?

#include <stdio.h>

int foo()
{
    return 50;
}

int main()
{                                        
    static int a = foo();
    printf("%d\n", a);


    return 0;
}  

上面这段代码,我用 g++ 编译可以通过,程序也可以正常输出 50,
用 gcc 编译就编译失败了,为什么?

PHPzPHPz2773 天前442

全部回覆(1)我來回復

  • 巴扎黑

    巴扎黑2017-04-17 14:40:18

    c99標準裡

    4 具有靜態儲存持續時間的物件的初始值設定項中的所有表達式都應為常數表達式或字串文字。

    回覆
    0
  • 取消回覆