recherche

Maison  >  Questions et réponses  >  le corps du texte

为什么这段代码在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 Il y a quelques jours444

répondre à tous(1)je répondrai

  • 巴扎黑

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

    c99标准里

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

    répondre
    0
  • Annulerrépondre