A probléma tárgya a következő értékadás:
(a ? b : c) = 5;
Tehát az értékadás bal oldalán egy feltételes kifejezés szerepel. Első ránézésre elég furcsa, de végülis van értelme, és mivel a kifejezés eredménye mindenképp egy változó lesz, ezért akár le is lehetne fordítani. Sőt, ennek alapján a gcc-nek le is kellene fordítania, de nem teszi.
Egyébként a szerkezet gyakran hasznos tud lenni, sokszor jó lett volna már, pl. gondoljunk egy bináris keresésre. Adott esetben még némi memóriát/sebességet is meg lehet spórolni vele. Ha mégis ilyet szeretnénk csinálni, akkor írhatjuk így:
*(a ? &b : &c) = 5;
Kicsit nyakatekert, de működik. Olvashatóság szempontjából persze nem a legjobb... :)
(a ? b : c) = 5;
Tehát az értékadás bal oldalán egy feltételes kifejezés szerepel. Első ránézésre elég furcsa, de végülis van értelme, és mivel a kifejezés eredménye mindenképp egy változó lesz, ezért akár le is lehetne fordítani. Sőt, ennek alapján a gcc-nek le is kellene fordítania, de nem teszi.
Egyébként a szerkezet gyakran hasznos tud lenni, sokszor jó lett volna már, pl. gondoljunk egy bináris keresésre. Adott esetben még némi memóriát/sebességet is meg lehet spórolni vele. Ha mégis ilyet szeretnénk csinálni, akkor írhatjuk így:
*(a ? &b : &c) = 5;
Kicsit nyakatekert, de működik. Olvashatóság szempontjából persze nem a legjobb... :)

