Sens rzutowania, skoro kompilator sam się tym zajmuje

0

Bawię się w Code Blocks.
Niezależnie od tego czy rzutuję czy nie, kopilator prawidłowo przekształca mi typy float na int i odwrotnie.
Czy mimo wszystko rzutować czy nie, bo robi to za mnie kompilator ?
Może nie rzutować, bo szkoda czasu ?

0

Wrzuć swój kod np tutaj a poznasz odpowiedź

1
  1. Jawne rzutowanie potrafi wpłynąć bardzo pozytywnie na czytelność programu.
  2. Nie wszystkie rzutowania odbywają się niejawnie i wtedy nie masz wyboru.
1
liter napisał(a):

Może nie rzutować, bo szkoda czasu ?

Szkoda czasu na co? Na napisanie tych paru znaków więcej czy podczas wykonania programu? Osobiście wolę mieć wszystkie konwersje, rzutowania jawnie. Po prostu kod jest wtedy czytelniejszy, a ja nie muszę się zastanawiać czy będzie automatyczna konwersja typów czy nie. Chyba, żeby od tego zależała wydajność. Wtedy mógłbym iść na ustępstwo. Jednak rzutowanie jest na tyle proste, że nie powoduje wielkiego narzutu czasowego.

1

Jest jeszcze jeden argument za robieniem tego w sposób jawny. Teraz automagiczne konwersje jakoś działają, ale być może w przyszlych wersjach się jakoś zmieni ten mechanizm. Jeśli robisz to jawnie, to masz pewność, że dostaniesz dokładnie to, co chciałeś. Opierając się na magii możesz kiedyś się zdziwić, kiedy coś się zmieni w spodobie jej działania.

Żeby nie było, że wymyślam (to nie do końca ta sama sytuacja, ale przypadek bardzo podobny) - pewien czas temu wyszła kolejna wersja Lazarusa i freepascala. Zmienili coś w obsłudze Unicode i w efekcie cześć starszych programów przestała się kompilowac. @furious programming pisał o tym pełen czas temu na swoim blogu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1