Aktywne Wpisy

comanchee +161

salad_fingers +148
Jakie szanse na znalezienie samochodu, który spełnia poniższe wymagania ma mężczyzna 30-letni, raczej urodziwy (7-8/10):
1. Auto bez dzwonu, nie po leasingu, bez fotelików
2. Max 15 lat.
3. Duży, ładny, w modnym lakierze. Dobrze by było, żeby miał sportowy charakter, ale samo zadbanie i brak rdzy też wystarczy.
4. Żadnych rys, wgniotek itp.
1. Auto bez dzwonu, nie po leasingu, bez fotelików
2. Max 15 lat.
3. Duży, ładny, w modnym lakierze. Dobrze by było, żeby miał sportowy charakter, ale samo zadbanie i brak rdzy też wystarczy.
4. Żadnych rys, wgniotek itp.





Jak skleić kilka zmiennych typu bool w jedną typu char albo dłuższą?
bool* bo = new bool[10];bo[0] = false;
bo[1] = true;
bo[2] = true;
bo[3] = true;
bo[4] = true;
bo[5] = true;
bo[8] = true;
Lub (lepiej)
Zapisać te zmienne do pliku bit po bicie a nie jedną na bajt.
Robiłem to pętlą i tak to wychodzi.
for(int x=0; x<3; x++) {ofs.write((char*)(&bo[x]), sizeof(*bo));
}
unsigned i = 0;for( auto&& b: bo ) i = i << 1 | (b?1:0);
ofs.put( i >> 8 & 0xff );
ofs.put( i & 0xff );
@look997
@ChinskieArduino
@
źródło: comment_tqyjc2H4k6nL3W935u8bYb9Cbzr27DoI.jpg
PobierzTaka prawda ( ͡° ͜ʖ ͡°)
@PeaK: e tam. Słaba prowokacja.
Jezyk C jest najblizej zblizony do assemblera. Kazda inna implementacja obiektowa to wynaturzenie, patrzac ze strony procesora dodajace overhead pamieci i cyklow. Procesor nie ma instrukcji operujacych na obiektach, tylko na rejestrach i wskaznikach. Jedynie dla obiektowych programistow jest to +, bo pisze sie latwiej i szybciej.
Ale sorry, jakosc tego
W sumie nie wiem czemu odpowiadam trollowi, ale proszę: w C++ tworzenie obiektów dla RAII jest darmowe. Jedyne co zapewniasz, to brak goto faila, albo wycieku zasobów.
A kernel linuksa ma w znaczącej większości kod dobrej jakości, ale mimo wszystko przez lata mieli trzy czy cztery różne implementacje linked listy, bo
Ps. Na porownywaniu sposobow i poziomow optymalizacji i weryfikacji kodu wynikowego w ASM pewnie spedzilem z pol zycia ( ͡° ͜ʖ ͡°) i dalej nie wiem jak optymalizator mialby bezkosztowo zmapowac obiekt i jego metody, atrybuty na procesor dzialajacy
C++ jest właśnie językiem, który łączy ze sobą optymalizujących świrów i ludzi, którzy lubią myśleć abstrakcją + są "leniwi" w pozytywnym sensie.
Tak też np. język D się nie przyjął, ale Rust robi niezłe zamieszanie wśród tego targetu.
Zauważ, że optymalność optymalnością, a rozwijanie i utrzymywanie kodu ? Dobrze napisany kod w assemblerze będzie szybszy niż dobrze napisany kod w C++, tylko trudniej ten dobry kod napisać, więc pisze się obiektowo w C++. Dlatego obiektowość masterrace. Wyobraź sobie projekt , który tworzy tysiąc programistów i jest pisany proceduralnie w C i ASM. Czort z naklepaniem, przyjdzie 100 bugów od klienta i rozkmina może potrwać tyle, że
POD ŻADNYM POZOREM NIE UJMUJE JĘZYKOM OBIEKTOWYM - W PEWNYM USE CASE SĄ ONE PO PROSTU NIEZASTĄPIONE.
Sam często używam czegoś obiektowego do sklejenia czegoś na szybko, aby działało.
Z języków obiekowych, najbliżej procesora jeśli chodzi o semantykę jest chyba własnie C++ i w nim jest największe pole do popisu
@ChinskieArduino: Wydajność powinna być taka sama. Jak nie jest, a jest to krytyczna ścieżka, to coś robisz źle. Ponadto, wraz z ewolucją sprzętu i kompilatorów kod w języku wysokopoziomowym może być lepszy. Np. nawet najlepszy kod w asm mnożący macierze napisany pod procki z 2000 roku na dzisiejszych będzie działał tak sobie, podczas gdy kompilator języka wysokopoziomowego
Co takiego można zrobić w C, czego nie można zrobić w C++?
Cała reszta "wskaźnikologii" jest ukryta pod koncepcją iteratorów oraz smart pointerów.
https://en.wikipedia.org/wiki/Smart_pointer
Generalnie to zgadzam się z Tobą - poziom marnowania zasobów przez bardzo wysoki poziom abstrakcji osiągnął absurdalne poziom.
Komentarz usunięty przez autora