Witam,
Czy ktoś wie co dokładnie oznacza taka konstrukcja ? Szukałem w necie ale nigdzie nie znalazłem.
int *a[b >? = c]
Witam,
Czy ktoś wie co dokładnie oznacza taka konstrukcja ? Szukałem w necie ale nigdzie nie znalazłem.
int *a[b >? = c]
Jedno z zapomnianych rozszerzeń GCC, za które Stallmanowi powinno się urwać jaja przy samych sandałach.
http://gcc.gnu.org/onlinedocs/gcc-3.4.6/gcc/Min-and-Max.html#Min-and-Max - w podanym przez Ciebie kodzie jest używana dodatkowo skrócona forma przypisania, zamiast x = x {op} y
jest x {op}= y
, czyli operator maksimum z przypisaniem, wybierze większą z liczb, przypisze do b
i zwróci jako rozmiar tej VLA (tablicy).
W to rozszerzenie zostało usunięte z GCC w momencie wydania wersji 4, nie sądziłem, że jeszcze je kiedyś zobaczę, 7 lat temu wyeliminowano je zupełnie, na długo przedtem uchodziło za niemile widziane.
Dzięki wielkie za odpowiedź. Mam takich mnóstwo w kodzie, więc najszybciej będzie jak sobie ściągnę starego gcc i skompiluje jak jest.
Pozdrawiam
No niestety gcc 3.4.6 nie kompiluje tego, także będę zmuszony przerabiać wszystko. Póki co dzięki za info - dwa dni mi to zajęło. Będę pewnie jeszcze prosił o pomoc ;)
%:include <stdio.h>
int main( int ac, char ** av )
??<
puts(av<:0??));
%>