Jeden z najfajniejszych kanałów o C++ i programowaniu ogólnie.

Polecam, nie dlatego że w sumie odkrywa coś niesamowitego, ale że przyjemnie to wyjaśnia i fajnie się go słucha.

Gość też jest mega fajnym człowiekiem bo zrobił coś czego szukałem od jakiegoś czasu czyli single .h file library - bardzo prosty silnik graficzny do portowania na wiele urządzeń który jest bardzo lekki i prosty do użycia. Link tutaj <==

Polecam
sorek - Jeden z najfajniejszych kanałów o C++ i programowaniu ogólnie.

Polecam, ni...
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mam nadzięję, że dobrze spędziliście święta ( )
Dzisiaj mam dla was kolejną wskazówkę z serii #zloteradypassera w temacie języka C++.

Najczęściej piszę o różnych featurach języka, ale dzisiaj będzie o pewnym błędzie w implementacji kompilatorów, który jest na tyle powszechny, że możemy spokojnie go użyć do swoich potrzeb na wielu architekturach. Mowa o tzw memory alignment.

Jak zapewne wszyscy wiemy, każdy obiekt w C++ ma określony
Passer93 - Mam nadzięję, że dobrze spędziliście święta (✌ ゚ ∀ ゚)
Dzisiaj mam dla was...

źródło: comment_1650787236o72Kmv50IWaFFngZckbGsF.jpg

Pobierz
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Passer93: Ale to nie jest żaden błąd kompilatorów, a celowe działanie, bo domyślnie kompilator języka C optymalizuje kod programu pod kątem szybkości dostępu do pól struktury, a nie pod kątem miejsca przez nią zajmowanego. https://en.wikipedia.org/wiki/Data_structure_alignment

Co więcej standard języka C wprost mówi, że:

There may be unnamed padding at the end of a structure or union.
Defined - @Passer93: Ale to nie jest żaden błąd kompilatorów, a celowe działanie, bo ...

źródło: comment_1650790233H0pt5jtmtsH6vOqqbQcehy.jpg

Pobierz
  • Odpowiedz
Polecacie jakieś średnie/duże firmy, które nie ogłaszają się na popularnych portalach typu NFJ, ale mają wolne wakaty?
#cpp
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Wiesz ze się to bierze z dziedzictwa C i zachowania względnego podobieństwa do atoi?


@Passer93: na pewno każdy programista rozpoczynający przygodę z C++ i ogólnie każdy młodszy niż 40lvl doceni to niesamowite nawiązanie do dziedzictwa historycznego xD
  • Odpowiedz
Cześć,

Chciałbym podążać ścieżką, która w przyszłości pozwoli zostać mi architektem w branży #embedded. W tym celu na własną rękę próbuje się uczyć ile mogę z książek czy internetu, ale to raczej kiepskie podejście, bo wiadomo, że praktyka jest najistotniejsza.

W tym celu wymyśliłem projekt bazujący na obsłudze urządzeń po Zigbee z pośredniczącym Zigbee2Mqtt. System będzie miał API, tutaj chciałem wykorzystać gRPC. Zrobię na pewno do tego jakiegoś GUI, chciałbym zrobić
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Parseval: @kobrys13: To jest idealny przykład dla którego nie powinno się zostać architektem oprogramowania ( ͡° ͜ʖ ͡°) Pieprzenie kotka za pomocą młotka, dużo pięknych słów, a jak już coś trzeba zrobić to albo idealistyczne opowieści na 10 stron albo stwierdzenie, że architekt nie musi się znać. I prawie zawsze rozbujałe ego. Zawsze z tego kisnę.

Z mojego doświadczenia, a siedzę już w embedded
  • Odpowiedz
@Parseval: Programowanie to moim zdaniem bardzo dobry sposób robienia pieniędzy ( ͡° ͜ʖ ͡°) Rzeczywistość jest niestety brutalna i nie możesz nic z tym zrobić. Dlatego im szybciej się z tym pogodzisz, tym lepiej. Jak to powiedział klasyk - "Boże, daj mi odwagę, bym zmieniał rzeczy, które zmienić mogę, spokój, bym godził się z rzeczami, których nie mogę zmienić oraz mądrość, bym potrafił je rozróżnić".

A wracając do samej architektury,
  • Odpowiedz
W jaki sposób mogę połączyć dwa array'e w C++?
Mam sobie dwie tablice:

unsigned char array_one[] = { 0x2, 0x1, 0x1b, 0x7, 0x55, 0x0, 0x1c, 0x31, 0x0, 0x5, 0xc, 0x2, 0x31, 0x11 };
unsigned char array_two[] = { 0x0 };
W jaki sposób mogę połączyć je by na końcu arrayone znalazł się ten pojedynczy bajt z arraytwo? Znam sposób z strcat, ale zastanawiam się czy jest sposób, by nie tworzyć
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@LongWayHome Używasz tablic C które mają stały rozmiar. Żeby dodać nowy element potrzebna jest realokacja pamięci, a więc po prostu stworzenie nowej tablicy.
Jeśli naprawdę chcesz pisać w C++ to użyj std::vector, który zrobi realokację za Ciebie.
  • Odpowiedz
jak przekonwertować const char* do char*?
przy czymś takim:

const char* a = "x";
std::cout << (char *)a;
printuje mi jakieś śmieci zamiast x
  • 16
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@BotRekrutacyjny: na marginesie, tego typu rzutowań zwykle się używa, gdy ma się do czynienia z przestarzałymi i kiepsko zrobionymi interfejsami (często napisanymi w C), o ile ma się gwarancję, że funkcja, która operuje na wskaźniku nie modyfikuje danych. Jeżeli coś zmodyfikuje te dane, to masz UB.
  • Odpowiedz
@kacpervfr: To jest lambda, którą wykonuje std::accumulate. Porównaj z poprzednią wersją - tamta przesuwała cyferki o jeden (mnożenie przez 10). Ta wersja przesuwa o tyle cyferek ile jest w b. int(log10(b) + 1) to liczba cyfr w b, a pow(10, x) to potęgowanie.
  • Odpowiedz
@imthehighestintheroom: firma olbrzymia, więc bardzo zależy gdzie trafisz. Moim zdaniem takie korpo to dobre miejsce na złapanie doświadczenia i wpisu w CV. Nauczysz się podstaw pracy z Gitem, CI / CD/, Unit testowania (i innych poziomów testów), jak będziesz mieć szczęście to może nawet jakieś wzorce projektowe odnajdziesz w kodzie ( ͡° ͜ʖ ͡°) ogólnie z mojego doświadczenia - praca w korpo była najmniej stresująca, bo
  • Odpowiedz
Do wykonania program w Pythonie lub C z GUI dla RaspberryPi wyświetlający dane z akcelerometru MPU-6050. Potrzebny jest odczyt pochylenia + obrotu. Koniecznie z zastosowaniem filtrów Kalman lub Komplementarny aby wynik był w miarodajny. Chętnych proszę o priv z wyceną.

#zlecenie #c #python #cpp
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Dzisiaj ode mnie kolejna wskazówka w temacie C++.

Jak wszyscy wiemy, jedną z głownych zalet języka C++ jest wydajność oraz możliwość różnorakich optymalizacji. Jedną z takich optymalizacji jest optymalizacja pamięci. Optymalizować można zarówno zużycie pamięci na stercie (heap) jak i stosie (stack).

Jedną z najskuteczniejszych technik jest tzw. memory recycling. Zasada jest prosta: jeśli mamy jedną zmienną której już nie potrzebujemy, a chcemy zaalokować kolejny obiekt, to możemy ten nowy obiekt umieścić w
Passer93 - Dzisiaj ode mnie kolejna wskazówka w temacie C++.

Jak wszyscy wiemy, je...

źródło: comment_16494196333Kvjw95Cr7QIeznYau54XK.jpg

Pobierz
  • 16
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Jak wygląda programowanie w c++ na macbooku? Będzie podobnie jak na linuxie? Jak wygląda instalowanie pakietów, też można na luzie zrobić coś w stylu "sudo apt-get install" i kompilować kod w gcc? Są jakieś wady tego rozwiązania?
#cpp
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Zrobiłem listę 64 różnych języków programowania i w tagu:
#bitwyjezykowe
będziemy sobie je porównywać który lepszy
W lewym narożniku #cpp najbardziej znany z synów C, spotykany wszędzie tam gdzie trzeba dużej wydajności
W prawym narożniku #csharp Albo "Microsoft Java" przyjemny język obiektowy
głosowanie plusami w kometarzach
wytrzzeszcz - Zrobiłem listę 64 różnych języków programowania i w tagu:
#bitwyjezyko...

źródło: comment_1649252954B5TkPyquR9wGJckESZMClN.jpg

Pobierz
  • 68
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach