2010-02-24 9 views
8

Powiel możliwe:
Why artificially limit your code to C?Dlaczego ktoś miałby używać C zamiast C++?

Zacząłem z nauki C, a potem skoczył prosto w C++ po prostu dlatego, że wspiera OO a także wymagane do późniejszej pracy. Jednak niektóre firmy kładą nacisk na zatrudnianie osób ze szczególnie mocnym doświadczeniem w C - i zauważyłem, że dotyczy to szczególnie firm zajmujących się rozwojem sterowników sprzętowych.

+0

http://stackoverflow.com/questions/649789/why-rysifici-limit-your-code-to-c –

+16

Dlaczego ktoś użyłby noża zamiast kuchenki? –

+0

@Neil Butterworth Cool, dzięki. –

Odpowiedz

3

To może być po prostu, że nie mają one kompilator C++ dla platformy są do pracy z ... Osobiście zawsze używać C++ zamiast do C.

3

C jest znacznie bardziej mobilny - pod prąd poziom standaryzacji C++, po prostu nie można go użyć, gdy ważność jest ważna. Jest także bardzo trudne, aby kod C++ został zintegrowany (w niezawodny i przenośny sposób) ze środowiskiem C.

4

Obsługa ciągów C to bardzo inny niż typowy ciąg znaków C++. Na pewno nie chciałbym ciągów C++ w pobliżu moich sterowników!

Mówiąc dokładniej, w dobrym, nowoczesnym C++ nie trzeba naprawdę rozumieć wskaźników i obsługiwać buforów na niskim poziomie; ale są to podstawowe i kluczowe umiejętności w kodzie sterowników urządzeń.

Tak, możliwe jest pisanie dobrych sterowników w C++; ale to C++ naprawdę wyglądałoby jak C z kilkoma dodatkowymi funkcjami. Większość biblioteki C++ nie ma miejsca w deviceland.

1

Wiele systemów wbudowanych, takich jak mikrokontrolery, sterowniki PLC, itp. Używa C, a nie C++, ponieważ nie muszą one mieć klas tylko jedną gigantyczną pętlę z niektórymi funkcjami rozproszonymi. Nic nadzwyczajnego, ale wystarczającego, by wykonać pracę w języku wyższego poziomu. Ponieważ C jest bardziej znany ludziom niż montaż, działa dobrze w ~ 98% przypadków.

-1

Myślę, że powód jest dość prosty, wiele firm chce wydajnego, czytelnego kodu. C jest dość łatwym językiem do zrozumienia i uchwycenia, a dla wielu zastosowań nie ma powodu, aby komplikować rozwój i ciągłość kodu przez dodanie zupełnie nowych pojęć (klas, polimorfizm, dziedziczenie, itp.), Które języki OO są możliwe, ale mogą nie być potrzebne.

Powiązane problemy