Missing.
It's a sad story, but C ++ suggests that if you call a function, this function can cause all kinds of side effects, including changing the value of binded.ID (that the function somehow knows)
With the exception of
, bindend.ID, ( ), ( - ). (, side_effect() )
int side_effect();
int k=1;
int main()
{
side_effect();
if (k!=0) return 0;
side_effect();
if (k!=0) return 0;
side_effect();
if (k!=0) return 0;
}
side_effect() k , . side_effect.
int side_effect();
static int k=1;
int main()
{
side_effect();
if (k!=0) return 0;
side_effect();
if (k!=0) return 0;
side_effect();
if (k!=0) return 0;
}
, side_effect k , . side_effect(); return 0, k , side_effect() . , undefined.
int side_effect();
void snitch(int*);
static int k=1;
int main()
{
snitch(&k);
side_effect();
if (k!=0) return 0;
side_effect();
if (k!=0) return 0;
side_effect();
if (k!=0) return 0;
}
, snitch() , side_effect() , side_effect() .
, k : , k , k.
PS: k const , const. const-ness .