为什么这段代码在C和C++下编译结果不一样?
PHPz
PHPz 2017-04-17 14:38:18
0
1
445
#include <stdio.h>

int foo()
{
    return 50;
}

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


    return 0;
}  

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

PHPz
PHPz

学习是最好的投资!

全員に返信(1)
巴扎黑

c99标准里

4 All the expressions in an initializer for an object that has static storage duration shall be constant expressions or string literals.

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート