@zwei: aha, no i w środku funkcji static oznacza co innego - to, że zmienna ma globalny lifetime. Pomiędzy wywołaniami tej funkcji zmienna zachowa swoją wartość. Np.

void foo () {
  static int x = 0;
  x++;
  • Odpowiedz
@m1chaal: volatile zmusza kompilator do respektowania wszystkich zapisów/odczytów (bez cachowania, zmiany kolejności itd) do danej zmiennej tak jak to jest napisane w programie. Przykładowe zastosowanie to DMA, załóżmy że pod bool* masz wartość, która mówi czy sensor światła coś wykrył. Wartość tej zmiennej zmienia się niezależnie od programu (kompilator nie wie co się dzieje w tle) i w takim przypadku musisz użyć volatile, żeby wszystkie odczyty z tej zmiennej były
  • Odpowiedz
@ZawzietyRobaczek: Szczerze, w trzeciej dekadzie XXI wieku takie rzeczy powinnien robić kompilator, a nie programista. Serio, gdybym był na Twoim miejscu to:
- porównałbym wygenerowany assembly, żeby sprawdzić czy Twoje zmiany w ogóle coś dały, czy to tylko sztuka dla sztuki
- Zamiast usuwać branche na ślepo, najpierw sprofilowałbym kod. Określił, które kawałki wykonują się nie tylko najdłużej, ale również najczęściej i skupił się na tych fragmentach
  • Odpowiedz
A ty w ile czasu byś ropykał to zadanie na rozmowie? W komentarzu podziel się rozwiązaniem w swoim języku programowania i ile ci to zajęło.


@BeginEnd: fajna zarzutka. Za darmo dostać rozwiązania ( ͡° ͜ʖ ͡°)
  • Odpowiedz
@BeginEnd: Proszę:

perl -MFile::Slurp -le'$dir="."; $,="\n"; print sort { read_file($a) cmp read_file($b) } glob("$dir/*.txt");'
Jeżeli ma być bez używania zewnętrznych bibliotek, to:

perl -le'$dir="."; sub r { open($h,"<",shift); return <$h>; } $,="\n"; print sort { r($a) cmp r($b) } glob("$dir/*.txt");'
Wiem, że brzydko, bez kontroli błędów, nie akceptuje parametru (bo to jednolinijkowiec) itd. Ale działa ¯\_(ツ)_/¯
  • Odpowiedz
@wytrzzeszcz: nowocześnie znaczy wg ciebie co, bez pomyślunku, wrzucając wzorce projektowe niezależnie od tego czy pasują czy nie, bo teraz jest tak modnie? Pisz poprawnie i nie cuduj.
  • Odpowiedz
@ZawzietyRobaczek: jakie pętle, weź ich nie słuchaj xD

Robisz tablicę jak w pierwszym ifie.
Robisz ifa == 4 to dodaj do tablicy.
Robisz ifa == 5 to dodaj do tablicy.
I po za ifami ta funkcja.
  • Odpowiedz
#programowanie #jezykc #gamedev Czołem C-Mireczki, macie pomysł jak zoptymalizować ten kod? Nei ma tu biedy bo jest wykonywany raz na klatkę, ale mnie w-----a .. tablice zrobić?

if (player_angle__deg >= 0 && player_angle__deg < 45) fv_cell_slice = 0;
else if (player_angle__deg >= 45 && player_angle__deg < 90) fv_cell_slice = 1;
else if (player_angle__deg >= 90 && player_angle__deg < 135) fv_cell_slice = 2;
else if (player_angle__deg >=
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mircy, szukam jakiegoś w miarę poukładanego i uporzadkowanego źródła wiedzy, chciałbym poczytać trochę o tym jak działa budowanie projektu, kompilacji, łączenie bibliotek, flagi z tym związane, konfiguracja środowiska programistycznego, cmake i takie tam. Czyli wszystko co się dzieje po kliknięciu build, debug czy execute.

#programista15k
#cpp
#jezykc
#embedded
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

warning: incompatible pointer types passing 'struct z_token_t *' to parameter of type 'struct z_token_t *' [-Wincompatible-pointer-types]
xD co


#jezykc
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Gdzie poszukać ciekawych plykladow kodów w C++? - podejrzewam, że github ( ͡º ͜ʖ͡º)
Zależy mi na nauce programowania embedded pod Linux i chciałbym się przekonać jak daleko jestem w lesie jeżeli chodzi o ten język programowania i zobaczyć czego nie rozumiem i co nadrabiać.

#programowanie #jezykc #cpp #informatyka
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@marylin17: pierwsza rada, jeśli dopiero zaczynasz to nie patrz na apki generujące kod (to samo dotyczy zresztą źródeł biblioteki standardowej). Jak już będziesz obyty z semantyką, zobaczysz trochę snippetów wykorzystujących bardziej zaawansowane konstrukcje tego języka to przyjdzie na to czas. Wcześniej tylko się niepotrzebnie zniechęcisz.

Co do zaś samego c++ to to, czego uczą na studiach ma się często nijak do tego, jak się powinno programować korzystając z najnowszych standardów
  • Odpowiedz
Treść przeznaczona dla osób powyżej 18 roku życia...
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@zwei: jeśli Serial1.read() zwraca 0xDC, to do zmiennej typu char przypisujesz wartość, która wykracza poza zakres tej zmiennej. Otrzymujesz więc liczbę ujemną. snprintf wstawia tam FFDC, bo wewnętrznie ta ujemna wartość jest castowana na zmienną o rozmiarze dwóch bajtów.
  • Odpowiedz
#programowanie #jezykc Mireczki jak najlepiej przekazać statyczną tablicę[M][N] do funkcji ? podsyłam przykład, czy to jest optymalne? Czy on przypadkiem nie przekopiuje całej struktury do funkcji? Wcześniej zwykle zwykle robiłem ** ale tu mam statyczną tablicę która jest inicjowana w kodzie:
https://zerobin.net/?3ec896b7c5e8f943#GB2CkX3Qym/3+xegv2ZAj17fXdI9SEtIfpJ74qxfpAw=
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Siemka, mam krótkie zadanie z programowania w języku C (treść: Trzeba stworzyć funkcję, która pobiera dwie liczby typu float i zwraca 0 jeśli liczby są równe z dokładnością 0.1, a -1 jeśli nie są). Będę wdzięczny za pomoc lub podpowiedź :)

#programowanie #jezykc #cpp
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#jezykc #programowanie #macos

Robię sobie mały programik i już prawię kończę, więc sprawdzam sobie memleaki, patrzę, a tu ich sporo w procesie potomnym, myślę wtf. No więc drążę dalej i sprawdzam, co siedzi w tych wyciekach. Okazuje się, że to jakieś gówna kernelowe OS_xpc_pipe, OS_xpc_array, gdzieś tam po drodze mój $PATH wypisany.

Teraz pytanie skąd to się bierze? W sensie w necie coś tam
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#elektronika #programowanie #jezykc
Wiecie mirki że naczelny Mirek ATNEL.PL robi kurs C na #avr ?( ͡º ͜ʖ͡º) im nasz więcej (przynajmniej 1000 a jest już 807 -na moment gdy o tym piszę ) tym większa szansa że kurs będzie kosztował 280 zł ( ͡° ͜ʖ ͡°)
Mało tego będzie wykorzystywał płytki #arduino w swoich projektach więc dla osób co nie mają zestawów atnel
Rade86B - #elektronika #programowanie #jezykc
Wiecie mirki że naczelny Mirek ATNEL.P...

źródło: comment_1655546647NQG4sdzXrxdKfFUOZ03dy2.jpg

Pobierz
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Czy mógłby ktoś polecić książkę na poziomie łopatologicznym do nauki mikrokontrolerów?

Dostałem pracę w branży automotive jako tester z Pythonem, ale widzę że ostatecznie wszystko tutaj kręci się wokół embedded C i elektroniki.

Znam całkiem dobrze C na platformę PC, ale z elektroniki analogowej nie umiem prawie nic.

Mam
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@przegrywam_przez_miasto: zacznij od platformy którą macie, jak jesteś mocny w C to zwyczajnie pogadaj z ludźmi, pobaw się projektami z pracy i przeczytaj programmer manual i datasheet od platformy. Więcej nie trzeba.

EDIT: a i upewnij się czy to twoje embedded to nie jest Linux na armie bo jak tak to już wiesz wszystko.
  • Odpowiedz
#programista #jezykc #cpp #programowanie #programista15k czesc, w jaki sposób mogę zaalokować jeden duży blok pamięci, ale tak zeby wpakować tam rozne struktury, tzn. ma tam być blok np. 100 wartosci 1 bajtowych, a po tym np. 100 wartosci 4 bajtowych, a potem jakas bardziej złożóna struktura, np:
typedef struct
{
char files[256][256];
int a,b,c;
}
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Szukam osoby chętnej do pomocy przy dwóch zadaniach z programowania w języku C. Sprawa jest dosyć pilna, siedzę już drugi dzień nad tym i nie mogę go dokończyć, a nie mam już na to czasu. Oczywiście zapłacę za pomoc ( ͜͡ʖ ͡€).

Więcej szczegółów podam na priv. Kto pierwszy ten lepszy ;)

#programowanie #informatyka #jezykc #cpp
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Siema, potrzebuję pomocy z małym zadaniem z programowania w języku C, a mianowicie (treść jest zakomentowana):

#include

int main( void ) // program kopiowania z stdin na stdout
{
  • 14
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@radekr: A i nie można tak zmienić warunku w pętli while, bo porównujemy różne typy. Taki mam błąd: kopiowanie.c:18:26: warning: comparison between pointer and integer ('int' and 'char *') [-Wpointer-integer-compare]
while( (c = getchar()) != ("\n")) {
~~~~~~~~~~~~~~~ ^ ~~~~~~
  • Odpowiedz
tablica[i] = (tu nwm co wpisać)


@tomekszz: Wpisujesz to, co ma się znaleźć w tej komórce. W Twoim przypadku to będzie c. Zatem wewnątrz pętli będziesz miał tablica[i] = c;. Tylko nie masz w swojej pętli i, więc musisz to dorobić by wiedzieć do której komórki wpisać. Może póki co tyle podpowiedzi tutaj, pokombinuj sam jak zrobić by była też zmienna i.

A co do warninga -
  • Odpowiedz