Giriş
Açıklaması şöyle
Örnek
i ve j sıfır ise soldan sağa işletilen kod sonucunda i=2 j=1 çıkar.
Şöyle yaparız. Önce f() çağrılır, daha sonra g() çağrılır
Comma Operator Sequence Point return cümlesi için de geçerlidir. Elimizde şöyle bir kod olsun.
Açıklaması şöyle
Örneğin comma operator bir sequence point'tir ve işleme soldan sağa doğrudur. f (), g () çağrısında önce f () işletilir.A pair of expressions separated by a comma is evaluated left-to-right; the left expression is a discarded-value expression (Clause [expr]). Every value computation and side effect associated with the left expression is sequenced before every value computation and side effect associated with the right expression.
Örnek
i ve j sıfır ise soldan sağa işletilen kod sonucunda i=2 j=1 çıkar.
i = ++j, j = i++;
ÖrnekŞöyle yaparız. Önce f() çağrılır, daha sonra g() çağrılır
f(x++), g(x++);
ÖrnekComma Operator Sequence Point return cümlesi için de geçerlidir. Elimizde şöyle bir kod olsun.
int fun(int x)
{
return (x=x+2,x+1); //[A]
}
int main()
{
int x=5;
x=fun(x);
printf("%d",x); // Output is 8
}
Bu kod aslında şöyledir. Sonuç olarak 8 verir.x = x + 2; // x == 7
return x + 1; // returns 8
Hiç yorum yok:
Yorum Gönder