#vscode #programowanie #jezykc #cpp

Jest taki fajny pliczek c_cpp_properties.json, tylko że niefajne jest to, że on jest per-workspace. A ja mam kilka predefiniowanych konfiguracji, które chcę mieć dostępne globalnie. W tej chwili linkuję w każdym projekcie globalny c_cpp_properties.json, który sobie gdzieś trzymam i wybieram odpowiednią.

Z tego, co udało mi się znaleźć, to raczej nie jest możliwe w tej chwili mieć tych
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@fefler: Nie. Wskaźniki są realizowane w zupełnie inny sposób. Tj. wskazują na obszar pamięci. Tu jest po prostu implementacja bardzo prymitywnej listy w zbliżony sposób, jak to się robi w C na wskaźnikach.
  • Odpowiedz
Cytat z książki o programowaniu w C:

Dobrze, ale w jaki sposób zdefiniować stałą symboliczną? Jednym z możliwych sposobów jest zadeklarowanie zmiennej i przypisanie jej odpowiedniej wartości. Wyglądałoby to tak:

float podatek;
podatek = 0.015
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@horus666: zalezy. Ogolnie pomysl zmiennej jest slaby, jak juz to stala bym dal, jest wieksza mozliwosc optymalizacji przy kompilacji.

Jesli chodzi o szybkosc dzialania, szybsze ma szanse (w zaleznosci od zastosowania) moze byc ten z #define W nowych kompilatorach podobna optymalizacje powinien dac const, a define jest bardziej niebezieczne - kompilator ma mniejsze szanse na wylapanie niektorych bledow, dodatkowo zajmujemy przestrzen nazw.
  • Odpowiedz
@horus666: preprocesor nie sprawdza typów. W pierwszym przykładzie chyba miało być const float.
Na przykładzie avr-gcc porównywałem kod asemblera, który wypuścił kompilator, i stwierdzam że:
1. kompilator umie wrzucić se wartość zmiennej do rejestru CPU i potem bezpośrednio z niego korzystać, nie odwołując się do RAM, nawet bez użycia volatile (*weź pod uwagę, że sprawdzałem dla procesora typu RISC, któy ma dużo rejestrów ogólnego przeznaczenia, w przeciwieństwie do CISC np x86)
2.
  • Odpowiedz
@zwei: Widziałem to już wcześniej i próbowałem. Z musi być wyzerowane, bo nie wiem co za śmieci dostaję z zewnątrz. Są jakieś bardziej eleganckie metody?
Segfaulty wyrzuca dopiero przy którymś kolejnym teście. Jeśli masz błąd już w pierwszym z nich to dalsze nie są przeprowadzane i dlatego nie pojawia się segfault ;)
  • Odpowiedz
Z musi być wyzerowane, bo nie wiem co za śmieci dostaję z zewnątrz. Są jakieś bardziej eleganckie metody?


No tak, ja zmieniam z na 1 na samym końcu przed returnem jeśli jest 0.

Jeśli masz błąd już w pierwszym z nich to dalsze nie są przeprowadzane i dlatego nie pojawia się segfault ;)


@TheCao: no to wykluczyłem wstawiając 1 tylko wtedy, gdy z wychodzi na końcu 0. Z tym że
  • Odpowiedz
Znalazłem na internecie ciekawe zestawienie cech projektów open source(głównie pisanych w językach C/C++)

Legenda(po angielsku, nie chce mi się tłumaczyć):

1. Language - all efficient languages, i.e. C/C++/C#/Rust etc., are scored positively. Writing programs may be more difficult, but they should provide very good performance and little resources for

2.
q.....n - Znalazłem na internecie ciekawe zestawienie cech projektów open source(głów...

źródło: comment_1596969872VVhPbenloR7v1PVlSR94Gl.jpg

Pobierz
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Unfortunately, some projects use different methods or use Mailing Lists


@qarmin: nie powiedziałbym, że "unfortunately". To podejście ma sporo zalet wobec scentralizowanego rozwiązania.
  • Odpowiedz
Troche mnie już zaczyna denerwować siedzenie w czystym VIMie i pisanie w nim kodu w C/C++. Warto kupić sobie CLiona głównie od projektów hobbystycznych? Czy może znacie jakieś fajne configi do NeoVIMa/VIMa żeby uzyskać podobną "funkcjonalność"?
#jezykc #cpp #linux #jetbrains #vim
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

via Wykop Mobilny (Android)
  • 2
@lisiarz: nvim + coc.vim, własne bindingi + :bp do cofania się po bufferach + nerdtree. Jedyne czego mi brak to wizualne pierdoły z vscode i integracji z gitem ale to ogarnę na dniach.
  • Odpowiedz
@lisiarz: pisanie w vimie kodu to patola i cofanie się w rozwoju imo
jeszcze trochę i może linuksiarze odkryją GUI ( ͡° ͜ʖ ͡°)
jakbyś pisał na windowsie to poleciłbym najlepsze środowisko do c++, czyli visual studio
a na linuksie to qt creator jest spoko. clion też, ale trochę zasobożerne. do celów hobbystycznych raczej nie warto za to płacić.
  • Odpowiedz
'gmacdevice' has a field 'gmacdevice::p_hw' whose type depends on the type 'Gmac {aka volatile}' which has no linkage [-Wsubobject-linkage]

O czym świadczy taki błąd? Pierwszy raz się z tym spotykam. #cplusplus #jezykc

  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Jak to się stało, że w programowaniu używamy nawiasów klamrowych? Poznaj historię wczesnych języków programowania i zobacz, jaki miały wpływ na pojawienie się nawiasów klamrowych we współczesnym kodzie.

https://bulldogjob.pl/news/1127-historia-nawiasow-klamrowych-w-programowaniu

#programowanie #naukaprogramowania #jezykc #javascript
Bulldogjob - Jak to się stało, że w programowaniu używamy nawiasów klamrowych? Poznaj...

źródło: comment_1591186858fjVEGm0DnjeEJJW90lfS9Q.jpg

Pobierz
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Hej Mirki,

Kwarantanna pobudziła we mnie resztki kreatywności i postanowiłem nauczyć się czegoś nowego. Jako ze na co dzień programuje w c/c++, wybór padł na JavaScript. Z którym wiele lat temu miałem kontakt. Jak zawsze największy problem to był pomysł, co napisać, aby wykorzystać coś co się umie, jednocześnie poznać nowe rzeczy i żeby to było użyteczne..

I tak powstał FluentTyper, rozszerzenie do przeglądarki(Firefox i Chrome( jak w końcu przejdzie re-view i uda się
bartekplus - Hej Mirki,

Kwarantanna pobudziła we mnie resztki kreatywności i posta...
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Pomysł wygląda bardzo fajnie, wydaje mi się, że niektórym może się bardzo podobać. Niestety jestem freakiem nt. prywatności, stąd moje pytanie, jaką mam pewność, że teksty które piszę nie trafiają na jakiś serwer, tym bardziej, że, jak sam piszesz, wtyczka podpina się pod każdy tekst.

Nie odbierz mnie źle, ale jak dla mnie jest to dość istotna decyzja przy używaniu czegokolwiek @bartekplus
  • Odpowiedz
@justjoin_it: Najgorzej jest jak idziesz na rozmowę jako programista C, jeszcze często Embedded, a tam zawsze połowa albo i więcej rozmowy o C++ ¯\_(ツ)_/¯
  • Odpowiedz
Mam funkcję, do której jako argument podaję liczbę, następnie nią manipuluję i zwracam. Lepiej tak robić, czy przekazać jej adres i na nim operować zamiast zwracania? Funkcji i tak nie zmienię na void, bo muszę zwracać czy wystąpił błąd
#jezykc #programowanie #naukaprogramowania
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@crocodiler: dla dużych struktur lepiej przekazać wskaźnik - żeby uniknąć kopiowania. dla liczb lepiej przez wartość - wzięcie wartości a adresu to taka sama praca dla cpu, ale przy odczytywaniu wartości funkcja ma wartość argumentu zwykle w rejestrze, albo blisko na stosie, a przy wskaźniku musi jeszcze się odwołać pod ten adres
  • Odpowiedz
#naukaprogramowania #gamedev #jezykc #cpp
w grach są wykorzystywane pakiety UDP, taki basic przykład, to nie są one nwm "raw"? bo mam pewien program w C i chce do niego dodać funkcjonalność multiplayer jako klienta. Znalazłem tą libkę: https://github.com/zpl-c/librg

i jako serwer chce mieć appkę w innej technologii, tzn. node.js. Po wyprintowanie Buffer.toString mi się pojawiają chińskie znaczki, czyli muszę ogarnąć jak w tej libce
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@szatantomojziomal_: UDP to standard transmisji, zwyczajnie wysyła dane, nic nie gwarantuje, a to o czym apki będą rozmawiać musisz ubrać w jakiś standard.
Programowo zazwyczaj dane otrzymujesz w hexach więc na poziomie Node strzel coś aka: pakiet.toString('hex') i powinno wyjść coś bardziej sensownego.
Poza tym najlepiej skorzystać z czegoś co już jest i działa i są zrobione standardy w wielu różnych językach (np websocket (ale to TCP)). O ile to
  • Odpowiedz