Dlaczego wiele projektów w #jezykc robi z niego k---ę używając jakichś własnych ale niepotrzebnych typów tudzież wątpliwej użyteczności/czytelności makr? Albo innych dziwacznych konstrukcji...
Każdy kto przekopał się przez trochę kodu w swoim życiu pewnie będzie wiedział o co mi chodzi...
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@RicoElectrico np taki "int" ma różną wielkość na różnych architekturach cpu. a uint8 to wiadomo że jest 8 bitowy bez znaku ;) a co do tych type'ów to zapewne łatwiej jest też debugować gdy typy wartości coś znaczą. np zalozmy, ze dopuszczalne wartości BMP280RETURNFUNCTIONTYPE mieszczą się w zakresie 0-8. jakbyś dostal 127 to wiedziałbys od razu ze coś jest nie tak;)
  • Odpowiedz
@Piterovy: tutaj chodzi chodzi o edycję tego array charów, i co się z tym dzieje, tylko nie wiem jak c tutaj działa, czy to przypadkiem nie przekazuje tego jako kopi? bo jest przekazanie wartości, a nie referencji/wskaźnika? (nie piszę w c)
A tak to pewnie chodzi o funkcje zmieniającą danego w inta w stringa, w systemie dziesiętnym, tylko właśnie te char[] mnie tu myli, wydaje mi się że tam
  • Odpowiedz
@Piterovy: ach, w końcu nie napisałem, funkcja zwraca też ilosc znaków jakie dodało do tablicy, a jak liczba jest ujemna to zaczyna się od minusa, więc jeden dodatkowy znak który trzeba doliczyć do całości, dlatego jest plus jeden.
  • Odpowiedz
@Kryspin013: @Kryspin013: fork() kopiuje proces więc jeżeli wpiszesz jedno fork() i jednego prontfa to program wywoła się tak naprawdę 2 razy - dla procesu macierzystego i dla potomnego więc printf zostanie wypisany dwa razy - raz dla macierzystego raz dla potomnego. W przypadku 2 forków wchodzisz w rekurencje:
1) zostaje wywołany pierwszy fork() i wypisuje ci pierwszego prinfa; zostaje stworzony proces potomny
2) zostaje wywołany drugi fork() i wypisuje ci
  • Odpowiedz
@kamil062: @Kryspin013: w przypadku forków nie ma rekurencji i nic nie wpada. Program się dzieli i wykonuje dalej od miejsca podziału.
fork
print1 print2
fork
print1 print12 print2 print22

Wyniki wynikają z różnicy buforowania na terminalu i pipe. Te dwie dodatkowe linie wynikają ze zlepienia z poprzedniego bufora printfa. Wrzuć po każdym printfie fflush(stdout);
  • Odpowiedz
Mirki. Jak w C obliczyć ilość wierszy w tablicy dwuwymiarowej w których jest przynajmniej jedno 0? W petlach for łatwo zrobić, żeby liczył wszystkie zera, ale jak zrobić, żeby po znalezieniu zera skończył for i przeszedł do kolejnego wiersza?
#programowanie #jezykc
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#stm32, #elektronika, #jezykc, #programowanie
Cześć, n00b level over 9000 here, więc proszę o wyrozumiałość.

Piszę program, który ma w odpowiednim czasie ustawiać 1 lub 0 na wybranym pinie według określonej w postaci struktury sekwencji. Wykorzystuję do tego cztery kanały TIM1 skonfigurowane jako Output Compare. Licznik liczy z częstotliwością 20 kHz i jest resetowany co sekundę. Co każdą sekundę sekwencja ma się powtarzać. Niestety
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Ramen: Nie, nie, zerknij na drugą pastę - ISR dla TIM2 wygląda tak:

void TIM2_IRQHandler()
{
if (TIM_GetITStatus(TIM2, TIM_IT_Update) ==
  • Odpowiedz
#jezykc #programowanie a tak na prawdę to nie programowanie tylko edycja tekstu, bo preprocesor , więc wołam ludzi obserwujących taki #define #ifdef #endif #include. Nie wołam ludzi obserwujących pragma. ( ͡° ʖ̯ ͡°)
Zapomniałem i nie mogę znaleźć w googlu jak się sklejało makra.
Mam sobie plik nagłówkowy w którym są przykładowo:

#define GPIO_PinSource0 ((uint8_t)0x00)
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@kiciek: z głowy czy;li z niczego (jak powiedział kiedyś klasyk),

#define twojanazwa GPIO_PinSource##USED_PIN
Jeśli rzeczywiście oczywiście dobrze zrozumiałem Twoje intencje
  • Odpowiedz
Mirki mam program napisany w #jezykc ,który wyświetla kod ASCII znaków wczytanych z utworzonego wcześniej pliku tekstowego. Wszystko działa pięknie, jednak, przed znakiem 0, który jest wyświetlany jako ostatni wyświetla mi się liczba -1 i ni cholery nie wiem co ona tam robi, a chciałbym się dowiedzieć ( ͡° ͜ʖ ͡°) Może ktoś tutaj mi pomoże. #naukaprogramowania

int main()
{
int
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mirki mam pytanie. Ostatnio wzięło mnie na robienie starych gier arcade w c, fajna zabawa i w sumie mam pytanie. Widzieliście/posiadacie może kod do Jumping Jack w C z użytymi SDL albo FreeGlut? Osobiście robię JJ z FG i z chęcia porównałbym rozwiązania ( ͡° ͜ʖ ͡°)

  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mirki, uczę się na egzamin i mam problem z jednym przykładem
w-4 ? w*5 : --w, gdzie int w=5
Jaką wartość będzie miało w? I nie chodzi mi o sam wynik, tylko jakieś wytłumaczenie, albo tutorial czy coś, ważne, żeby się nauczyć :)
#programowanie #jezykc
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Kiziek: Taka rada na przyszłość, póki nie ma egzaminu masz do dyspozycji kompa, więc w kwestiach niejasnych przepisuj śmiało przykłady i testuj. Dodatkową zaletą jest to, że możesz sprawdzać stan zmiennych w każdym momencie działania programu.
  • Odpowiedz
Mireczki mam pytanie przed egzaminem z C++. Chodzi o klasy i tablice dynamiczne:

Mam jakąś klasę, która ma pola prywatne **rozmiar_tablicy i wskaźnik** na tablicę liczb całkowitych

int * tablica .

W
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#naukaprogramowania #jezykc
http://pastebin.com/gLRGyTjq
Program ma zliczać znaki, które sobie mogę sam zadać. Jak jednak zrobić tak, żeby skanować znaki do momentu uzyskania ich w tym przypadku 19 albo po wpisaniu jakiegoś znaku? W sensie, jeśli wpiszę na przykład # i będzie to znak dziesiąty, to żeby skanowanie się kończyło i zliczało to, co chcę.
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@MajsterTS: scanf("%d", &liczba) odczytuje liczbę jaką wprowadził użytkownik, ale w buforze(tu trafiają dane wprowadzone przez użytkownika w konsoli) pozostawia znak nowej linii(czyli to, co pojawia się gdy naciśniesz Enter).
Jeśli uruchomisz program, wprowadzisz "10" i naciśniesz Enter, to scanf "usunie" z bufora tylko "10", a w buforze pozostawi Enter(znak nowej linii). Jeśli po tym zrobisz scanf("%c", &znak), scanf od razu wczyta właśnie znak nowej linii(jako że %c wczytuje tylko jeden
  • Odpowiedz