May 22, 2012

Orada virgül işleci kullanılıyor. D'den kaldırılması önerilir ama C'den beri var olduğu için kaldırılmaz. Virgül işleci ifadeleri soldan sağa doğru işletir ve sonuncusunun değerini üretir. Çalışma zamanında da işler.

İfadelerin etrafına parantez koyulmadığı zaman söz dizimi yanlış anlaşılabiliyor. Örneğin aşağıda parantezler olmasa i'nin tanımlanmasından sonra bir de bar() isminde bir işlev bildiriliyor gibi oluyor.

void foo()
{}

double bar()
{
   return 1.5;
}

int zar()
{
   return 42;
}

void main()
{
   int i = (foo(), bar(), zar());
   assert(i == 42);
}

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

May 22, 2012

Alıntı (Salih Dinçer):

>

demek C99 standardı?

gcc'nin -std=c89 seçeneği kabul ediyor.

Alıntı:

>

Ancak beklediğim sonuç çıkmadı. Çünkü daireninAlanı'na en son tek başına duran 314 değeri eşitleniyor.

Virgül işleci öyledir: sağındaki ifadenin değerini üretir. Dolayısıyla en sondaki değer oluyor.

Alıntı:

>

Peki hocam hiç üçlü işlevi else'si olmadan yani :'nin sağından bir şey olmadan kullanabildin mi?

gcc'nin üçlü işleçle ilgili bir ek olanağı vardı. Belki odur. (?)

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

1 2
Next ›   Last »