Я просматривал код на http://geeksforgeeks.org/?p=10302
#include<stdio.h>
int initializer(void)
{
return 50;
}
int main()
{
static int i = initializer();
printf(" value of i = %d", i);
getchar();
return 0;
}
Этот код не будет компилироваться в C, потому что статические переменные должны быть инициализированы перед запуском main ().Это хорошо.Но этот код прекрасно компилируется в компиляторе C ++.
Мой вопрос заключается в том, почему он компилируется в компиляторе C ++, когда static используется одинаково в обоих языках.Конечно, компиляторы будут разными для этих языков, но я не могу точно определить точную причину.Если это указано в стандарте, я хотел бы знать, что.
Я искал этот вопрос на SO, нашел 3 аналогичные ссылки, но тщетно. Ссылка1 Ссылка2 Ссылка3
Спасибо за вашу помощь.