Tanımlanmamış davranış ve sıralama noktaları hakkındaki bu cevabı okuduktan sonra küçük bir program yazdım:
#include <stdio.h>
int main(void) {
int i = 5;
i = (i, ++i, 1) + 1;
printf("%d\n", i);
return 0;
}
Çıktı 2
. Tanrım, düşüşün geldiğini görmedim! Burada ne oluyor?
Ayrıca, yukarıdaki kodu derlerken, bir uyarı var:
px.c: 5: 8: uyarı: virgül ifadesinin sol tarafındaki işlenmesinin hiçbir etkisi yoktur
[-Wunused-value] i = (i, ++i, 1) + 1; ^
Neden? Ama muhtemelen ilk sorumun cevabı tarafından otomatik olarak cevaplanacaktır.
printf("2\n");