Blog (2)
Komentarze (2.5k)
Recenzje (4)
@__Tux__Magia kodu

Magia kodu

24.08.2015 23:48

Dziś krótki wpis. Raz na jakiś czas zdarza mi się spotykać z rzadkimi sytuacjami w kodzie. Jedne wzbudzają śmiech, inne są brzydkie na tyle, że bym nigdy więcej nie chciał ich oglądać. Przedstawię tu kilka z nich.

C

Dlsym

Przykład podany na wielu stronach brzmi mniej więcej tak:

[code=C]double (*cosine)(double); //coś dalej *(void **) (&cosine) = dlsym(handle, "cos");[/code]

Nasuwa się pytanie: czemu nadpisywać wskaźnik na wartość do wskaźnika? Otóż standard ISO C nakłada pewne wymagania na składnię i w tym miejscu wyrzuciłby ostrzeżenie. Można zapisać to prościej, jednak wtedy możemy liczyć na humory GCC.

Magiczna zamiana

Działanie sprawdźcie sami :‑) .

[code=C]a^=b^=a^=b;[/code]

Powyższy zapis pozwala na zamianę dwóch zmiennych miejscami bez używania zmiennej tymczasowej.

Perl

Perl, podobnie jak kilka innych języków, słynie z możliwości zapisu jednej rzeczy na kilka sposobów. Nie można więc pominąć tego jak poniżej.

Operacje jako warunki

[code=Perl]($a == $b) && ($c = 2) ($print $c);[/code]

Nie trzeba używać struktur kontrolnych i bloków. Sposób wyznaczania wartości wyrażenia złożonego robi wszystko.

Globowanie

[code=Perl] while (<>) { chomp; print; }[/code]

Bardzo treściwa wersja programu wyświetlającego nazwy plików.

Java

Tak po prostu wpadło mi do głowy:

[code=Java]class Klasa { //wnętrze klasy int a;;;;;;;;; } [/code]

Tak, chodzi o średniki :‑). Tego typu zapis jest jak najbardziej poprawny

Wybrane dla Ciebie
Komentarze (5)