Treść przeznaczona dla osób powyżej 18 roku życia...
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@inspektor_gadzet:

pisane w czystym C, w środowisku od producenta?

Ta jest. Zaczynałem na AVR jak jeszcze Arduino nie było popularne, i tak mi zostało że lubię mieć kontrolę nad sprzętem somsiedzie ( ͡° ͜ʖ ͡°)
  • Odpowiedz
C++ posiada kilka menadżerów pakietów, ale generalnie wszystkie ssą. Najpopularniejsze to conan, vcpkg (oba multiplatformowe). Zrobienie dobrego menadżera pakietów dla obecnego stanu C++ jest niemożliwe, dlatego powstała grupa standaryzacyjna SG15 Tooling, pod przewodnictwem Titusa Wintersa, która m. in. ma zająć się tworzeniem takowego. Ilość problemów jest ogromna, a największe wyzwanie to zrobić coś, co będzie mogło być użyte z istniejącymi bibliotekami, których jest pierdyliard i każda budowana jest w inny sposób. Brak
  • Odpowiedz
Deklaruję wskaźnik na wskaźnik na longa:

long **return_vals = calloc(10, sizeof(long*));
Teraz próbuję się odwołać do wartości long:

printf("%ld ", *return_vals[i]);
  • 30
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Oglądałem weekly filmik od Jasona Turnera, w którym pojawia się jego CMake file wraz z warningami. Gość na filmiku wybiera aktywne warningi, opisujac komentarzem ich sens. W praktyce robiłem odwrotnie, blacklistując kompletnie zbędne przy włączonym maksymalnym (albo jakoś bardzo wysokim) poziomie.

Naszło mnie do zapytania: w jaki sposób definiujecie jakie warningi pozostaną w trakcie kompilacji?

#cpp #jezykc
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Golem_Piotr: używam takiego o -Werror -Weverything w clangu: https://embeddedartistry.com/blog/2017/3/7/clang-weverything. Do całości 10 wykluczeń i gra gitara.

Na podlinkowanej przez Ciebie liście jest wyłączony -Wno-unused. Sam autor sugeruje, że irytuje go ten warning w trakcie developmenu, ale dobrze czasem włączyć. To potencjalnie error-prone.

Taka lista oparta o whitelistowanie ma zasadniczą wadę: jeżeli nowa wersja kompilatora wprowadziłaby nowe warningi dla przypadków dotyczących np. nowszej wersji języka, o ile nie wejdą
  • Odpowiedz
Treść przeznaczona dla osób powyżej 18 roku życia...
  • 35
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@CppPolska: Chciej pisać o C++, znacznij od make... ¯\_(ツ)_/¯

Kurde, kisne z tego artykułu:

choć - w wielu przypadkach - może to być nader skomplikowane

Nie to że zwykły bash zrobi dokładnie to samo i jest dużo prostszy. Jedyne czym się różni to szybkość, pomijanie już skompilowanych kawałków i równoległe budowane,
  • Odpowiedz
@CppPolska: Ale bym sobie tak takiego bloga popisał, ale nie mam kiedy o tym, że mi się nie chce to już nie wspominając :(

I tak od lat żałuje, że dalej nie zrobiłem (,)

Szanuję za CLion i całkiem dobry artykuł!
  • Odpowiedz
@DerMirker by może zapomniałem dodać: moim zdaniem.
Programując w C++ dużo korzystam z konsoli a robienie tego na Windows doprowadza mnie do placzu. Ostatnio próbowałem zmusić qt na W7 do współpracy - debugger odmawiał. Na Linuxie po prostu mi zadziałało.
Poza tym, mam wrażenie że obecnie dużo (większość?) developmentu dla C++ robi się na Linuxie: embedded jest po prostu wygodniej - nie wiem jak z gamedev.
  • Odpowiedz
Hej. Mam problem z wyświetleniem wartości bajta w systemie dziesiętnym. W skrócie - koniecznie wykorzystując unie muszę zinterpretować wartość int na pojedyncze bajty. Dla niektórych wartości działa to dobrze, lecz dla wartości int np.255 program wyświetla mi -1 0 0 0 jako wartości dziesiętne bajtów. Dlaczego nie wyświetli wartości 255 skoro wykorzystując %d powinno to interpretować jako wartość dodatnią dla tak małej wartości. Zamienienie w kodzie %d na %u tylko pogarsza sprawę.
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Ogarniam wątki, ale nie rozumiem póki co jednej rzeczy. Dlaczego ten program https://pastebin.com/aHN0ugAk nie za każdym razem wykonuje funkcję którą przekazałem do funkcji tworzącej wątek? Jak widać na obrazku, w tym konkretnym uruchomieniu utworzyłem 10 wątków, a funkcja która wyświetla ID z poziomu wątku wykonała się 8 a nie 10 razy. W dodatku dwa razy wykonała się w wątku ósmym. O co tu chodzi?

#jezykc #programowanie
M.....3 - Ogarniam wątki, ale nie rozumiem póki co jednej rzeczy. Dlaczego ten progra...

źródło: comment_812XdXRlH31XNORu5d0gYM8VExqSpWPA.jpg

Pobierz
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Matt23: ogolnie to wypisuje, z tym, ze dostep do bufora nie jest zabezpieczony dla integralności. Ogólnie sposób programowania jeśli taki jest jak pokazany, to nie jest najlepszy.... exit winien być ostatecznością, a nie wywoływany ot tak ze środka kodu przy drobnym błędzie... Mozliwe, że ksiązka jest dobra jeśli chodzi o merytorykę dotyczącą systemów informatycznych, ale programowania bym się z niej nie uczył...
  • Odpowiedz
@konik_polanowy: a co chciałbyś działać w C? Ten język to obecnie mikrokontrolery, sterowniki do sprzętu, aplikacje konsolowe(Linux motzno). Do kucowania w tym polecał Linuksa na maszynie wirtualnej, albo normalnie postawionego, bo w windowsie to Cię k-----a weźmie już na etapie ustawiania środowiska.

Ja zaczynałem na mikrokontrolerach AVR od tego kursu:
http://www.hobby.abxyz.bplaced.net/index.php?pid=4&cid=1

To jest przydatne, ale to nie kurs, tylko raczej taka ściągawka jak co robić
http://goalkicker.com/CBook/
  • Odpowiedz
Witajcie mireczki. Wczoraj i dziś miałem czas, więc dorobiłem do mojego nano serwera http na #esp8266 bardziej zaawansowany interfejs do zmiany ustawień WiFi z wykorzystaniem AJAXa. Nawet jest dynamicznie generowana ikonka zasięgu+czy sieć jest zabezpieczona.
Bierzcie i kucujcie z tego wszyscy ( ͡°( ͡° ͜ʖ( ͡° ͜ʖ ͡°)ʖ ͡°) ͡°):
https://github.com/QB4-dev/esp_nano_httpd_advanced_example


#qbadev #
QBA_ - Witajcie mireczki. Wczoraj i dziś miałem czas, więc dorobiłem do mojego nano s...

źródło: comment_YKuodTJt8GOctwxs5g4WqIK9JjQYZyI8.jpg

Pobierz
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mircy, zgłupiałem całkowicie. Ten program https://pastebin.com/ns0wnLxr raz zwraca, że nieistniejący katalog istnieje, a raz że nie. Póki co zaobserwowałem to na dwóch maszynach wyposażonych w system debian8 i kompilator gcc w wersji gcc (Debian 4.9.2-10) 4.9.2
Dzieje się to nie tylko z jednym katalogiem. Inny mój program losowo identyfikuje typ danego pliku na komputerze, czasem nawet identyfikując go jako żaden z możliwych, to znaczy ani jako folder, ani plik zwykły, nie socket co
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Matt23: jeśli plik nie istnieje, to stat/fstat/lstat nie zapisuje nic do struktury i zwraca błąd ENOENT, który tutaj pięknie ignorujesz
  • Odpowiedz