Я просматривал код 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(). Это нормально. Но этот код будет компилироваться просто отлично в компиляторе С++.
Мой вопрос заключается в том, почему он компилируется в компиляторе С++, когда статический язык имеет одинаковое использование на обоих языках. Конечно, компиляторы будут отличаться для этих языков, но я не могу точно указать причину. Если это указано в стандарте, я хотел бы это знать.
Я искал этот вопрос на SO, нашел 3 похожих ссылки, но напрасно. Link1 Ссылка2 Link3
Спасибо за вашу помощь.