#jezykc #cpp #programowanie Zawsze słyszałem żeby korzystać z jednowymiarowych tablic int* niż dwuwymiarowych int**,
porobiłem pare testów i wyszło że te dwuwymiarowe są ok. 4x lub wiecej szybsze niż 1 wymiarowe, przynamjniej kompilujac na Intelu visual studio x86, chce jeszcze sprawić na docelowej architekturze 68k.. może to wybika z tego że żeby móc traktoac 1 wymiarowa tablicę jako macierz trzeba jednac sobie obliczyć index = x
  • 41
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Passer93: no nie.

W 1d masz ciągły blok bajtów, w 2d każdy wiersz może być w zupełnie innym miejscu. Jak czytasz sekwencyjnie, wiersz po wierszu, tablica 1d super działa z cache.

STL też ma pod spodem tablice. Pytanie możesz sobie przetłumaczyć na std::array> vs std::vector>
  • Odpowiedz
#mojeraycastingowezabawy #programowanie #programista15k #grafika3d #gamedev #raytracing #raycasting #retrogaming #kodowanie #jezykc #cpp

CZĘŚĆ 10.
Ostatnio pracowałem bardziej nad frameworkiem całości. Stworzyłem taki szkielet pod engine i gameplay i wszystkie biblioteki przepisałem stricto pod język C. Jak kiedyś wspomniałem, chcę zobaczyć jak coś takiego będzie chodzić na Amidze z RTG, mam tu na myśli
ZawzietyRobaczek - #mojeraycastingowezabawy #programowanie #programista15k #grafika3d...
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#asembler #cpp #jezykc #programowanie Takie pytanko, czy jeśli nie zależy mi na pamięci, to jest sens używania np. 8 bitowych char i 16 bitowych shortów? czy używać tylko 32 bitowych intów, bo i tak reszta rejestru musi zostać uzupełniona zerami czy coś.. a jak jest int to zajmuje cały 32 bitowy rejestr wiec powinno być szybicej bo nie trzeba nic uzupełniać.... mówimy oczywiście o
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@ZawzietyRobaczek: Po pierwsze rejestry raczej nie wiele mają wspólnego z memory footprint. Lista rejestrów dostępnych w CPU jest zawsze taka sama, niezależnie od typu zmiennych, jakich używasz ( ͡° ͜ʖ ͡°) To powiedziawszy, typ zmiennej może mieć wpływ na performance. Szczegóły zależą pewnie od CPU, ale zwykle jeśl masz 32-bitowy CPU, najwydajniesze będą operacje na 32-bitowych zmiennych.
Jeśli chcesz zmiejszyć memory footprint, zainteresuj się paddingiem w
  • Odpowiedz
Po ponad pół roku korzystania z języka Rust, nie wyobrażam abym kiedykolwiek stworzył nowy program w C/C++(ciągle jednak się trochę udzielam przy istniejących projektach).
Zastrzegam tu, że nie jestem zawodowym programistą, lecz tworzę programy głównie dla rozwiązywania własnych problemów i też wyszukuję czasami błędy w programach open-source.

Kilka powodów:
- Valgrind i GCC/Clang Sanitizers - Zawsze towarzyszyły mi w tworzeniu kodu, ponieważ każda jego zmiana była potencjalnie niebezpieczna. Nie zliczę, ile to razy program zwracał
q.....n - Po ponad pół roku korzystania z języka Rust, nie wyobrażam abym kiedykolwie...

źródło: comment_16130738507Vz3ojwgiEU54OENddT76M.jpg

Pobierz
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Pamiętam, że kiedyś w cmd w windowsie, dalo sie jakoś "wrzucić" plik tekstowy do programu w c, coś w stylu
"program.c > plik.txt", np. gdy w c piszę najprostrzy program

while ( (c = getchar()) != EOF )
putchar(c);

wypisanie
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#winapi #wingdi #cpp #jezykc Cześć, pytanie z winAPI, czy da się obejść, żeby nie tworzyć za każdym razem Bitmapy w każdej klatce? Ogromna strata wydajności - próbowałem wyciąganać CreateDIBitmap do jakiegoś Inita poza pętlę - myśłaem, że jak mu dam wskaźnik to bedzie korzystał po prostu z bufora na który ten wskaznik wskazuje - a tu widocznie za kazym razem kopiuje zawartość, kiedy CreateDIBitmap
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Jak widzę w ofertach C/C++ to omijam je szerokim łukiem. Czy tylko ja tam mam? ( ͡° ͜ʖ ͡°)

Może się nie znam ale wytwarzanie oprogramowania w jednym i drugim języku to kompletnie inne rzeczy. A na rozmowie technicznej można się spodziewać C z klasami. Czemu tak wiele ofert jasno nie określa czego wymagają ()

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

można się spodziewać C z klasami.


@maad: albo czystego C, zawsze tak jest. Później się okazuje, że używają max C++11 a to oznacza, że mamy doczynienia z chamską utrzymaniówką.
  • Odpowiedz
@JakTamCoTam: To, że kod jest napisany w max C++11 nie oznacza, że jest zły. Czasem po prostu nie warto zmieniać wszystkiego i używać nowych rozwiązań tylko dlatego, że są nowe.
Poza tym, na przykład w #embedded, niektóre kompilatory po prostu nie wspierają nowszych standardów (szczególnie dla starszych lub bardziej egzotycznych architektur). To znaczy, że jeśli chciałbym użyć C++20, to albo musiałbym kupić albo nowszy kompilator, albo droższy
  • Odpowiedz
Siema Mirki i Mirabelki! ( ͡° ͜ʖ ͡°)

Jako Just Join IT dołącza w tym roku po raz pierwszy do #wosp ❤️ i specjalnie na tą okazję staraliśmy się przygotować coś, czego prawdopodobnie jeszcze nie widzieliście. Połączenie sztuki i programowania!

Mówią, że napisanie czystego kodu to sztuka w swojej formie dorównująca freskom Michała Anioła
justjoinit - Siema Mirki i Mirabelki! ( ͡° ͜ʖ ͡°)

Jako Just Join IT dołącza w tym ...
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Dawisek: w C stringi kończy się bajtem 0 - jest to znacznik końca stringu, z którego korzysta wiele funkcji ze standardowej biblioteki, np. strlen. strlen nic nie wie o rozmiarze stringa, nigdzie nie jest to zapisane, przechodzi znak po znaku aż trafi na 0 i wtedy kończy działanie zwracając długość stringa. Tutaj najwyraźniej string jest po prostu skracany o jeden znak.

Można napisać 0, można napisać odpowiadający literał typu char
  • Odpowiedz
@Crypone: tak na poważnie, to mogę Ci wysłać materiały do nauki i życzyć powodzenia. Alternatywnie zasugerować inną ścieżkę kariery, słyszałem, że jako kafelkarz można nieźle zarobić.
  • Odpowiedz
Jestem debilem, który musi napisać w #jezykc prostego shella. Pierwszą funkcją, którą chcę się zająć jest linuksowe cd, czyli zmiana położenia, folderu. Jak to zrobić prościej? Tak samo, żeby nie wychodziło mi po jednym scanf z programu? Nie radzę sobie kompletnie z tym językiem. Da się zrobić jakoś, żeby używał wczytanej wartości jak funkcji? #informatyka #programowanie kod: https://onlinegdb.com/3McMfndncI
  • 15
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Zadaję głupie pytanie, ale już po 8h nauki dzisiaj głowa mi wysiada i zaczyna mi się wszystko plątać.

Mam zmienną
char* temp[] = {"a","b","c"};
Jak zrobić, żeby nowa zmienna zawierała połączone znaki?
Np char* newTem = "abc";
#naukaprogramowania #jezykc
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Implementuję sobie listę i mam dwie funkcje, które różnią się tylko warunkiem w while. Chciałem je połączyć w jedną, wykonując sprawdzenie odpowiedniego warunku w odrębnej funkcji, przekazanej do niej przez parametr będący wskaźnikiem na funkcję, tylko że nie za bardzo rozumiem wskaźniki na funkcję. Ktoś pomoże? #naukaprogramowania #jezykc #programowanie

struct sll-node *find-spot(struct sll_node *front, int data)
{
struct sll-node *prev = NULL;
while ((NULL != front)
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach