mam pewną sprawę, z którą dość często się spotykam. Mianowicie na wielu forach, jeżeli ktoś prosi o pomoc w jakimś programie w C++ (nawet najprostszym, np. czytającym z pliku wartości do tablicy i sortującym je), to czasem osoby pytają się w jakim środowisku (kompilatorze) ma to być wykonane. Czy w Builderze czy w Visualu itp…
Dlaczego :?: Przecież tak proste programy, wykorzystują tylko czysty C++… Są nawet tutaj znaczące róznice - bo ja się z tym jeszcze nie spotkałem :?
Ponieważ nie istnieje żaden kompilator który spełnia wszystkie standardy (przynajmniej przy ustawieniach domyślnych).
A ponieważ każdy umieszczający posty na forum przeważnie przyzwyczaił się do konkretnego kompilatora, to piszę z użyciem tego co proponuje konkretny kompilator.
Od razu rzuca się w oczy, że w przypadku np. Borlandu wina wcale nie musi leżeć po stronie użytkownika. Choć moim zdaniem, w wielu prostych przypadkach wypytywanie o kompilator jest przesadą.
flash4gordon , w linku który podałeś nie są testowane “najprostsze programy”, o których mowa w tym temacie.
Aczkolwiek wyraźnie pokazuje to “niekompatybilność kompilatorów” jeżeli można tak nazwać to zjawisko. W każdym razie chodzi o to że w każdym kompilatorze pewne rzeczy są traktowane inaczej. Jeżeli ktoś zna w pewnym stopniu język C++ to przerobienie niewielkiego kodu pod inny kompilator na podstawie błędów i ostrzeżeń pokazywanych przez kompilator jest niewielkim problemem. Co innego kiedy kod jest bardzo duży, wtedy przejście na inny kompilator jest czasami wręcz niemożliwe.
Każdy kompilator produkuje swój WŁASNY, UNIKALNY kod pod dany system i architekturę.
Aha, dowiedziałem się niegdyś, że kompilacja to nie proces kod źródłowy -> kod maszynowy, ale oprócz tego może być przypadek kod języka X -> kod języka Y (co wydaje się chyba logiczne, bo nie wydaje mi się żeby kod HLL’a był od razu kompilowany do maszynowego).