Я заметил, что если вы инициализируете статическую переменную в C ++ в коде, инициализация выполняется только при первом запуске функции.
Это круто, но как это реализовано? Это переводит на какое-то искаженное выражение if? (если задано значение, то .. )
void go( int x )
{
static int j = x ;
cout << ++j << endl ; // see 6, 7, 8
}
int main()
{
go( 5 ) ;
go( 5 ) ;
go( 5 ) ;
}