C vs. C++

Magnefikko

Były Moderator
Dołączył
Maj 29, 2004
Posty
709
Tu i ówdzie słyszę że do celów "h4xi0rskich" lepszy jest C niż Cpp. Co o tym sądzicie? Czemu? Może to tylko pusta gadanina i Cpp jest lepsze? A może wszystko zależy od gustu użytkownika?
 

marccinn

Użytkownik
Dołączył
Grudzień 5, 2007
Posty
19
<div class='quotetop'>CYTAT(Magnefikko @ 8.06.2008, 14:30) <{POST_SNAPBACK}></div>
do celów "h4xi0rskich"[/b]
Zależy co rozumiesz przez słowo "h4xi0rskich". Exploita można napisać zarówno w C, jak i w C++. Przy tak małych programikach nie ma to żadnego znaczenia. Poza tym każdy kod w C można skompilować jako C++ (ale już nie zawsze w drugą stronę).
Moim zdaniem lepszy jest raczej C++, nie wiem co o tym sądzą inni. Można se pisać tak jakby w C, a dodatkowo możesz w każdej chwili wprowadzić do kodu dowolne "udziwnienie" - np. klasy, polimorfizm, itd...
 

RobertG

Użytkownik
Dołączył
Styczeń 3, 2007
Posty
391
Zależy co rozumiesz przez słowo "h4xi0rskich". Exploita można napisać zarówno w C, jak i w C++. Przy tak małych programikach nie ma to żadnego znaczenia.[/b]
Zgadzam się.

Wszytko zależy od gustu kodera i zadania. C jest trochę szybsze za to C++ pozwala pisać obiektowo co jest potrzebne dla dużych projektów. Ja wole C bo w C/C++ pisze drobiazgi a tam nie trzeba obiektowości więc wole czystość C (subiektywna opinia).
 

jurgensen

Użytkownik
Dołączył
Grudzień 14, 2006
Posty
678
1) C++ zapewnia lepsze zarządzanie pamięcią (new i delete vs malloc)
2) Zapewnie obiektowość (co do powyższego postu, obiektowość zwiększa czytelność kodu)
 

interactive

Użytkownik
Dołączył
Maj 6, 2008
Posty
128
Niema żadnej różnicy
<
C jest trochę starszy a c++ trochę młodszy i głupszy!
 

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
Ja preferuje c++ bo
1) Można uzywać klas z STL np. string czy vector ktore są niesamowicie wygodne.
2) C++ jest obiektowe i to zwiększa przejrzystość kodu
 

sinis

Użytkownik
Dołączył
Wrzesień 3, 2006
Posty
958
Ja też preferuję C++'a. Dodam od siebie tyle, że C może być uznane za wiele prostszą odmianę Asemblera. Wszystko co jest w C jest również w Asmie, z tym, że składnia jest trochę czytelniejsza i "wygodniejsza".
 

Loocash

Użytkownik
Dołączył
Czerwiec 23, 2008
Posty
2
Nie znam się na hackingu, ale miałem już trochę doświadczenia z C i C++.
Powiem tak C++ to rozszerzona wersja C. Ja osobiście częściej korzystam z elementów języka C. A jak do tego dojdą wstawki ASM'a to ma się pole do manewru
<
Przez to, że C to (niby) język niskiego poziomu tak jak Assembler(Pomijając HLA) działa dużo szybciej. Więc do tych twoich h4xi0rskich celów lepszy będzie C ;] Ale pamiętaj, że to programista się liczy, NIE język programowania (i nie łapać mnie tu za słowa ;P)
 

sevjij

Użytkownik
Dołączył
Luty 11, 2007
Posty
28
Ja powiem tak.
Osobiście preferuję język C, czytałem kiedyś wywiad (jak się uprę to znajdę link) nie mam pojęcia w jakim stopniu jest prawdziwy (niby od twórcy C++).
W którym znajdują się informacje o C i C++ i całkiem się wtedy z tym zgadzałem.
Napisanie jednakowego projektu w C zajmie 6 miesięcy gdy w C++ będzie to od roku do dwóch lat.
W dodatku ..
Przy bibliotece windows.h i głupich importach najpotrzebniejszych rzeczy, typu printf lub sprintf aplikacje w C będą ważyły do 20 kb, gdzie w C++ będą ważyć 600 kb ...

Jeszcze jedno, czy przypadkiem nasz kochany windows nie był przez długi czas pisany w C jak nie jest dalej ?
I jeszcze jedno winapi (pomimo nazwy =D) jest najbardziej wieloplatformowym językiem.

Co prawda moja opinia na bank zabiera błędy aczkolwiek, chyba nie aż tak rażące.
 

marccinn

Użytkownik
Dołączył
Grudzień 5, 2007
Posty
19
<div class='quotetop'>CYTAT(sevjij @ 23.06.2008, 21:25) <{POST_SNAPBACK}></div>
Napisanie jednakowego projektu w C zajmie 6 miesięcy gdy w C++ będzie to od roku do dwóch lat.[/b]
lol, nie wiem co za różnica w języku.
<div class='quotetop'>CYTAT(sevjij @ 23.06.2008, 21:25) <{POST_SNAPBACK}></div>
Przy bibliotece windows.h i głupich importach najpotrzebniejszych rzeczy, typu printf lub sprintf aplikacje w C będą ważyły do 20 kb, gdzie w C++ będą ważyć 600 kb ...[/b]
Guzik prawda, zauważ, że rozmiar "600 KB" osiągamy wtedy, gdy do projektu jest dołączony plik nagłówkowy iostream. printf i cout to zupełnie dwie różne bajki! Poza tym spróbuj se w programie pisanym w C napisać "#include <iostream.h>" - rozmiar skoczy do co najmniej 200 KB, zależnie od kompilatora. Poza tym kiedyś mój program urósł mi do rozmiaru ponad 1MB, chociaż kodu była garstka, a plików nagłowkowych nawet nie tak dużo. Skopiowałem kod, usunąłem projekt i wkleiłem kod do nowego projektu i wszystko wróciło do normy. Wniosek? Wina oczywiście albo kompilatora albo IDE.
Na dowód tego przykład z życia - piszę se obecnie programik dosyć dużych rozmiarów, oczywiście w C++ i rozmiar pliku wynikowego bez kompresji po kompilacji wynosi ok. 25 KB. Rzeczą mam nadzieję jasną jest fakt, że nie używam w nim iostreama, za to jest windows.h, funkcji WINAPI używam namiętnie chyba w każdej swojej podprocedurze lub funkcji w tym projekcie.

Czy język wpływa na rozmiar pliku wynikowego? NIE, wszystko zależy od kompilatora!
 

sevjij

Użytkownik
Dołączył
Luty 11, 2007
Posty
28
<div class='quotetop'>CYTAT(marccinn @ 24.06.2008, 19:12) <{POST_SNAPBACK}></div>
lol, nie wiem co za różnica w języku.

Guzik prawda, zauważ, że rozmiar "600 KB" osiągamy wtedy, gdy do projektu jest dołączony plik nagłówkowy iostream. printf i cout to zupełnie dwie różne bajki! Poza tym spróbuj se w programie pisanym w C napisać "#include <iostream.h>" - rozmiar skoczy do co najmniej 200 KB, zależnie od kompilatora. Poza tym kiedyś mój program urósł mi do rozmiaru ponad 1MB, chociaż kodu była garstka, a plików nagłowkowych nawet nie tak dużo. Skopiowałem kod, usunąłem projekt i wkleiłem kod do nowego projektu i wszystko wróciło do normy. Wniosek? Wina oczywiście albo kompilatora albo IDE.
Na dowód tego przykład z życia - piszę se obecnie programik dosyć dużych rozmiarów, oczywiście w C++ i rozmiar pliku wynikowego bez kompresji po kompilacji wynosi ok. 25 KB. Rzeczą mam nadzieję jasną jest fakt, że nie używam w nim iostreama, za to jest windows.h, funkcji WINAPI używam namiętnie chyba w każdej swojej podprocedurze lub funkcji w tym projekcie.

Czy język wpływa na rozmiar pliku wynikowego? NIE, wszystko zależy od kompilatora![/b]
Zostaw biednego kompilatora w spokoju.
Jeżeli chodzi Ci o to, że osiągnąłeś w C++ wagę 25 kb to fajnie.
Ale osiągnięcie 6 kb w przypadku C i przy w miarę długim kodzie, jest banalnie proste.
Tutaj piszesz, że używasz winapi ... gdybyś używał tych normalnie przygotowanych od C++ od razu waga by Ci wzrosła dwukrotnie.

Tak więc czysty C++ nie jest taki piękny i w szczególności przy aplikacjach haxiorskich, gdzie np. chcesz operować na plikach, to winapi jest milion razy lepsze, a w gruncie rzeczy winapi to C.
 

speedypl

Użytkownik
Dołączył
Czerwiec 26, 2008
Posty
1
ale niektorzy tutaj bzdury gadaja,c jest stare,c++ jest nowe,c++ to ulepszenie c. A przy malych programach to nie ma znaczenia czego uzywasz
 

sevjij

Użytkownik
Dołączył
Luty 11, 2007
Posty
28
<div class='quotetop'>CYTAT(speedypl @ 29.06.2008, 19:24) <{POST_SNAPBACK}></div>
ale niektorzy tutaj bzdury gadaja,c jest stare,c++ jest nowe,c++ to ulepszenie c. A przy malych programach to nie ma znaczenia czego uzywasz[/b]
Wiesz, że C++ jest też bardzo stare i następców jest już dużo ?
I przy małych programach ma to znaczenie, w szczególności, jeśli małe oznacza, mało czasochłonne, bo w przypadku C takie się tworzy szybko i bez problemów a w przypadku C++, musisz ominąć główną bibliotekę.
Tak więc na przyszłość, nie gadaj bzdur, tylko przeczytaj co ludzie piszą, skoro sam do końca nie wiesz ...
 

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
ja naprawde nie wiem o czym wy mowicie. bo z tego co tu widze to wy chyba nawet C i C++ nie widzieliscie
przeciez w c++ mozesz bez problemowo kozystac z kazdego elementu C a w C juz nie wykozystasz np. klas STL.
pomijając to C jest wydajniejszy.

@sevjij nie wiem o co ci chodzi ze w c sie kodzi szybciej i bezproblemowo. W c++ mozesz do woli wykozystywac elementy C a wzbogacone o elementy o c++ tworza to jeszcze szybsze i wygodniejsze(oczywiscie jesli potrafi sie je wykozystac)
 

Omeli

Użytkownik
Dołączył
Czerwiec 10, 2008
Posty
27
wg mnie to dziwna jest troche ta dyskusja
<
z całym szacunkiem dla autora tematu!!!
bo przecież to wszystko zależy od programisty. nie można uzyskac uniwersalnej odpowiedzi ,,c czy c++" jednemu lepiej sie bedzie pisac w tym, innemu w tamtym. jesli znasz 1 jezyk (o ile mozna je podzielic na 2 rozne jezyki) lepiej od 2. to napisane w nim przez Ciebie aplikacje bedą szybsze/wydajniejsze/krótsze/mniejsze od tych w 2. jezyku, prawda? analogicznie w 2 strone
<
przynajmniej ja to tak widze.
 
N

nBD

Gość
<div class='quotetop'>CYTAT(sevjij @ 27.06.2008, 19:15) <{POST_SNAPBACK}></div>
Zostaw biednego kompilatora w spokoju.
Jeżeli chodzi Ci o to, że osiągnąłeś w C++ wagę 25 kb to fajnie.
Ale osiągnięcie 6 kb w przypadku C i przy w miarę długim kodzie, jest banalnie proste.
Tutaj piszesz, że używasz winapi ... gdybyś używał tych normalnie przygotowanych od C++ od razu waga by Ci wzrosła dwukrotnie.

Tak więc czysty C++ nie jest taki piękny i w szczególności przy aplikacjach haxiorskich, gdzie np. chcesz operować na plikach, to winapi jest milion razy lepsze, a w gruncie rzeczy winapi to C.[/b]
ech, co ty bredzisz, winapi to INTERFEJS programistyczny dla windows, zawiera zbior funkcji do obslugi roznych elementow systemu operacyjnego, mozesz go uzwyac zarowno w C, C++, ASM i innych jezykach, o ile kompilator generuje pliki PE. To ze widziales programy w C, ktore uzywaja winapi to nie znaczy ze winapi == c.

I przy małych programach ma to znaczenie, w szczególności, jeśli małe oznacza, mało czasochłonne, bo w przypadku C takie się tworzy szybko i bez problemów a w przypadku C++, musisz ominąć główną bibliotekę.[/b]

C++ to jezyk obiektowy, zaprojektowany, by program w jakis sposob odzwierciedlal "prawdziwe zycie" ( nie wiem inaczej jak to opisac ). W systemie (programie) wystepuja obiekty, ktore realizuja okreslone funkcje. Za obiektowoscia stoi caly proces tworzenia aplikacji, od kodu w UML, przez developement po testowanie.


Napisanie jednakowego projektu w C zajmie 6 miesięcy gdy w C++ będzie to od roku do dwóch lat.[/b]
Raczej calkowicie w druga strone, no chyba ze piszesz program typu kalkulator czy notatnik. Jakbys mial +50 plikow, 500 funkcji i pare tysiecy linii kodu, to przy C dlugo bys takiego projektu nie utrzymal.

btw, ty jestes ten sevjij od owntibii ? jak tak to juz rozumiem, skad takie opinie wyglaszasz, ze C jest lepszy i mniejszy od C++.
 

Patrykuss

Użytkownik
Dołączył
Listopad 6, 2006
Posty
107
Z tego co wiem, C jest językiem programowania niższego poziomu.

Cele "h4xiorskie"? Nie wiem jakie to dokładnie ale wybór języka wg. mnie zależy w tym przypadku od złożoności programu i tego co ma ów program robić.

C++ jest nowszym językiem, następcą C ale nie znaczy, że zawsze lepszym. Mi np. wygodniej pracuje się na plikach w C a nie C++. Tak jak napisałem. Wszystko zależy od tego, co chcesz dokładnie napisać.
 
Do góry Bottom