2011-12-19 10 views
5

Będę pracował wyłącznie w C. Ubunutu 10.10 odzyska wersję 2.8 Clanga z jego repozytoriów i zainstaluje ją w pełni. Skompilowałem Clang v 3.1 ze źródła i dodałem go do ścieżki (po odinstalowaniu Clang 2.8), ale nie mam dostępu do jego stron mana w ten sposób i od czasu do czasu drażni się, że nie w pełni go "zainstalowałem", chociaż wydaje się być w pełni funkcjonalny w niektórych testach.Jakieś praktyczne różnice między wersjami Clang 2.8 i 3.1 dla programisty C?

Czy istnieje praktyczna różnica między wersjami 2.8 i 3.1 z punktu widzenia programisty wersji C (w rzeczywistości studenta)? Pracuję wyłącznie w C i nie wykorzystam jego możliwości w C++ lub C. Wierzę, że większość rozwoju w Clang była ostatnio w rozszerzeniu jego umiejętności w C++.

+0

Dlaczego nie czytasz informacji o wersji i nie wiesz, co znalazłeś? –

+0

Uwierzyłbym, że optymalizacje i ostrzeżenia poprawiły się (nawet dla C). Podobnie, dla ostatnich ewolucji GCC. –

Odpowiedz

2

Zauważalna różnica, którą odkryłem, polega na tym, że parametry funkcji 2.8 VLA powodują, że rdzeń zrzutu kompilatora. W 2.9 (a więc w 3.1 Przypuszczam) ten błąd wydaje się być naprawiony.

Również ta nowsza wersja języka clang implementuje już część C11, w szczególności _Generic.

+0

http://gustedt.wordpress.com/2011/01/13/vla-as-function-arguments/ –

+0

Uwaga: niektóre funkcje C11, które działają już w rdzeniu zrzutowym gcc/icc w klangu (3.1), najlepiej w wyznaczonym inicjalizacja anonimowych struktur i związków – hroptatyr

+0

@hroptatyr: brakuje wielu rozszerzeń. Clang jest teraz dużo lepszy w C++ niż w C. –

Powiązane problemy